A popular DEM (Digital Elevation Model) raster dataset available on the internet is the Global Land One-kilometer Base Elevation from NOAA, known as GLOBE http://www.ngdc.noaa.gov/mgg/topo/globe.html. This dataset comes split into tiles which can be seen by gdal as a unique dataset, only after applying some nonobvious tricks. This page explains how to access the GLOBE dataset from gdal in general, it is not specific to FortranGIS, but of course all the information applies to FortranGIS too.

Georeferencing the tiles

The 16 raw tiles covering the whole Earth and available for download from NOAA site contain no information about their geographical positioning. However, browsing the GLOBE site, you can get to this page http://www.ngdc.noaa.gov/mgg/topo/elev/esri/hdr/ from which you can download the ESRI header files associated to the raw tiles.

So, after having downloaded the tiles, which have an austere ?10g naming scheme, the next step is to download the corresponding header files ?10g.hdr and to save them in the same directory where the raw tiles are kept. Unfortunately, gdal interprets this dataset as composed of unsigned integers, thus it misrepresents the points below sea level and the no-data values (=-500) on sea. To improve this situation, you should hand-edit the .hdr files adding a line like the following:

PIXELTYPE SIGNEDINT

At this point you can check whether gdal can correctly reference the single tiles by executing:

gdalinfo -stats n10g

assuming that the files n10g.hdr and n10g are available in the current directory.

Sticking the tiles together

In order to let gdal see all the tiles as an unique dataset, you can build a so-called gdal virtual raster dataset, which consists of a metafile in xml format understood by gdal, describing one or more external datasets in a format known by gdal, without duplicating the data, see also http://www.gdal.org/gdal_vrttut.html for a complete description. For this purpose you need to have gdal version 1.6.1 or newer, having the gdalbuildvrt command, and you should simply execute:

gdalbuildvrt globe.vrt ?10g

If the execution is successful, when you will point gdal to the globe.vrt dataset it will see a truly global set of data, hiding the details of accessing the correct tiles according to the area you request.