def METHOD_NAME(pos):
    """Download elevation
    Download elevation data for the specified position.
    ARGUMENTS:
        pos (lat,lon)  The specified position
    RETURNS:
        None
    EXCEPTIONS:
        Varies  If DEBUG is enabled, all errors are exceptions
    """
    try:
        os.makedirs(CACHEDIR,exist_ok=True)
        if pos[0] < 0:
            lat = f"{-math.floor(pos[0])}S"
        elif pos[0] > 0:
            lat = f"{math.floor(pos[0])}N"
        else:
            lat = "0"
        if pos[1] < 0:
            lon = f"{-math.floor(pos[1])}W"
        elif pos[0] > 0:
            lon = f"{math.floor(pos[1])}E"
        else:
            lon = "0"
        zipfile = f"{TMPDIR}/{lat}_{lon}.zip"
        tiffile = f"{CACHEDIR}/{lat}_{lon}.tif"
        if not os.path.exists(tiffile):
            verbose(f"{tiffile} not found, downloading {zipfile}...")
            url = f"{ROOTURL}{abs(math.floor(pos[0]))}W{abs(math.floor(pos[1])):03d}.zip"
            verbose(f"setting url to {url}")
            response = session.get(url, stream=True)
            response.raise_for_status()
            with open(zipfile, 'wb') as fd:
                for chunk in response.iter_content(chunk_size=1024*1024):
                    fd.write(chunk)
            verbose(f"saved zipfile to {zipfile}")
            with ZipFile(zipfile,"r") as zip:
                files = zip.namelist()
                for file in files:
                    if file.endswith(f"{abs(math.floor(pos[0]))}W{abs(math.floor(pos[1])):03d}_dem.tif"):
                        verbose(f"extracting {file} to {TMPDIR}")
                        zip.extract(file,TMPDIR)
                        verbose(f"move {TMPDIR}/{file} to {tiffile}")
                        os.rename(f"{TMPDIR}/{file}",tiffile)
                    else:
                        verbose(f"skipping {file}")
            os.remove(zipfile)
            verbose(f"")
        else:
            verbose(f"{tiffile} is already downloaded")
    except Exception as err:
        error(err)