      SUBROUTINE GGP_ILDEF(ZREG, MREG, NREG, PROJ, SCAL, SUBAREA)

C     * MAR 11/2004 - M.BERKLEY (MODIFIED for CCCMA)

      IMPLICIT NONE

C Information Label DEFinition routine.

      INTEGER MREG, NREG
      REAL ZREG(MREG, NREG)
      LOGICAL SUBAREA

C Publication quality options
      LOGICAL PUB, DOTITLE, DOINFOLABEL, DOLGND, DOLABEL, SHAD1
      COMMON /PPPP/ PUB, SHAD1, DOTITLE, DOINFOLABEL, DOLGND, DOLABEL

C For passing colour index array into colour FILL routines through
C Common Block.
      INTEGER NIPAT, NPAT, MAXPAT, MAXCLRS
      PARAMETER(NIPAT = 28)
      INTEGER IPAT(NIPAT)
      REAL ZLEV(NIPAT)
      COMMON /FILLCB/ IPAT, ZLEV, NPAT, MAXPAT, MAXCLRS

C Variables to define a information label text message at the
C bottom of the plot.
      REAL CMN, CMX, CIU, SCAL
      CHARACTER*11 CMNTXT, CMXTXT, CIUTXT, Z33TXT
      CHARACTER*120 ILT
      CHARACTER*(*) PROJ

      INTEGER GGILP
      REAL GGILX,GGILY
      PARAMETER (GGILP=3,GGILX=0.5)

      IF (PROJ .EQ. 'ST') THEN 
        GGILY=-0.02
      ELSE IF (.NOT. SUBAREA) THEN
        GGILY=-0.25
      ELSE 
        GGILY=-0.55
      ENDIF
      IF (NPAT .GT. NIPAT) THEN
        CALL CPSETC('ILT', ' ')
        RETURN
      ENDIF
      IF (.NOT.DOINFOLABEL) THEN
         CALL CPSETC('ILT - INFORMATION LABEL TEXT', ' ')
      ELSE
         CALL CPGETR('CMN - CONTOUR LEVEL MINIMUM', CMN)
         CALL CPGETR('CMX - CONTOUR LEVEL MAXIMUM', CMX)
         CALL CPGETR('CIU - CONTOUR INTERVAL USED', CIU)

         WRITE(ILT,90) CMN,CMX,CIU,SCAL,ZREG(3,3)
 90      FORMAT('CONTOUR FROM ',G11.5,' TO ',G11.5,
     1        ' INTERVAL = ',G11.5,
     2        ' SCALE = ',G11.5,' PT(3,3) = ',G11.5)
         IF (PROJ .EQ. 'ST') THEN 
           CALL CPSETR('ILS', 0.009)
         ELSE 
           CALL CPSETR('ILS - INFORMATION LABEL SIZE', 0.007)
         ENDIF
         CALL CPSETC('ILT - INFORMATION LABEL TEXT', ILT)
         CALL CPSETI('ILC - INFORMATION LABEL COLOUR INDEX', 1)
         CALL CPSETI('ILP - INFORMATION LABEL POSITION FLAG', GGILP)
         CALL CPSETR('ILX - INFORMATION LABEL X COORDINATE',GGILX)
         CALL CPSETR('ILY - INFORMATION LABEL Y COORDINATE',GGILY)
      ENDIF
      RETURN
      END
