C
C$$$  SUBPROGRAM DOCUMENTATION BLOCK
C                .      .    .                                       .
C SUBPROGRAM:    DISTSP      DISTANCE ON GREAT CIRCLE
C   PRGMMR: S. J. LORD       ORG: W/NMC22    DATE: 91-06-06
C
C ABSTRACT: CALCULATES DISTANCE ON GREAT CIRCLE BETWEEN TWO LAT/LON
C   POINTS.
C
C PROGRAM HISTORY LOG:
C   91-06-06  S. J. LORD
C   YY-MM-DD  MODIFIER1   DESCRIPTION OF CHANGE
C   YY-MM-DD  MODIFIER2   DESCRIPTION OF CHANGE
C
C USAGE:    DXY=DISTSP(DLAT1,DLON1,DLAT2,DLON2)
C   INPUT ARGUMENT LIST:
C     DLAT1    - LATITUDE OF POINT 1 (-90<=LAT<=90)
C     DLON1    - LONGITUDE OF POINT 1 (-180 TO 180 OR 0 TO 360)
C     DLAT2    - LATITUDE OF POINT 2 (-90<=LAT<=90)
C     DLON1    - LONGITUDE OF POINT 2
C
C
C REMARKS: DISTANCE IS IN METERS
C
C ATTRIBUTES:
C   LANGUAGE: INDICATE EXTENSIONS, COMPILER OPTIONS
C   MACHINE:  NAS, CYBER, WHATEVER
C
C$$$
      FUNCTION DISTSP(DLAT1,DLON1,DLAT2,DLON2)
      DATA REARTH/6.37E6/
C
      XXD=COSD(DLON1-DLON2)*COSD(DLAT1)*COSD(DLAT2)+
     1    SIND(DLAT1)*SIND(DLAT2)
C
      XXM=AMIN1(1.0,AMAX1(-1.0,XXD))
C
      DISTSP=ACOS(XXM)*REARTH
      RETURN
      END