Readme file for Geoid99 geoid separation computation utility
--------------------------------------------------------------------------
Executable File Name: G9932.exe
Disclaimer: There is absolutely NO WARRANTY as to values created or reliability of this program - Use at your own risk.

//This program was developed from NGS FORTRAN source code Intg.for
//which was programmed by Dru A. Smith at NGS - without his code this
//function could not have been written very easily.
//
//Many thanks to Charlie Schwarz [Charlie.Schwarz@noaa.gov] for his
//assistance and patience in helping me develop the C code.

//written 12-26-2000 by Terry Nygaard

//updated 03-08-2002 - Fixed DMS to decimal conversion error on lat/long

//Copyrighted Dec 2000 by Terry Nygaard all rights reserved
//------------------------------------------------------------------------
//Using this source code or compiled executable as a part of commercial
//(for profit) applications is strictly prohibited. Educational institutions
//are free to use the source code as long as it is made no part of a
//commercial application. Users wishing to use this code as part of a
//commercial application must contact Terry Nygaard at E-mail or
//E-mail or ph# 512-369-7528.

Developed as an alternative to intg.for. 'C' code was developed with small memory requirements in mind. Unlike the Fortran code which can require a large amount of ram, this utility is very memory efficient. Code is useful for DOS or other Microsoft OS's in which memory is limited, such as WindowsCE. The big difference between this utility and intg.for is that it can only utilize a single *.bin file. Intg.for by contrast can utilize many grid files. These *.bin files are NGS formatted geoid 99 geoid files. These files can be obtained at this location:
http://www.ngs.noaa.gov/GEOID/GEOID99/datageo99upc1.html

The basic usage is to specify a *.bin file to load and then an output file to create. The *.bin file entered MUST be the full path of the *.bin file. The output file entered must also be the full path of the output file. If the output file exists, its contents are overwritten. You can input a single point manually or use an ASCII input file formatted as columns (with no header row) PointID Lat Long. The latitude and longitude values must be formatted as DDD.MMSSddddd and all values separated by a space. PLEASE NOTE that the longitude MUST be input as a negative value. I am assuming that this program will be used in US states and therefore no provisions for other countries. In the event that an input file is given, an output file with an additional column for the geoid separation will be created. If the position given is outside the *.bin file boundaries then a geoid separation value of -999.000 is returned.

If a position is input that extends beyond the extents of the *.bin file

Here is an example input ASCII file using C:\geoid99\g1999u06.bin:
1225 30.075718431 -97.270334813
1306 29.480594406 -98.005465292
1307 29.453018443 -98.030062918
1308 29.421336455 -98.054468487
133L 29.580303928 -97.055196905
1387 30.451666177 -98.121409306
138C 31.113408813 -98.412053430
138E 31.125196854 -98.232710505
1419 31.103445584 -99.190879259
150A 30.052211634 -97.154521099
150B 30.035581547 -97.135694955
150C 30.022032241 -97.115745452
150D 30.011242369 -97.092897543
267A 30.451378772 -98.315031778

Here is the example output file:
1225 30.075718431 -97.270334813 -26.083
1306 29.480594406 -98.005465292 -25.758
1307 29.453018443 -98.030062918 -25.767
1308 29.421336455 -98.054468487 -25.793
133L 29.580303928 -97.055196905 -26.338
1387 30.451666177 -98.121409306 -24.534
138C 31.113408813 -98.412053430 -24.574
138E 31.125196854 -98.232710505 -25.379
1419 31.103445584 -99.190879259 -23.587
150A 30.052211634 -97.154521099 -26.091
150B 30.035581547 -97.135694955 -26.116
150C 30.022032241 -97.115745452 -26.152
150D 30.011242369 -97.092897543 -26.200
267A 30.451378772 -98.315031778 -23.681