*-----------------------------------------------------------------------
*     SGPQNP / SGPQID / SGPQCP / SGPQVL / SGPSVL
*-----------------------------------------------------------------------
      SUBROUTINE SGPQNP(NCP)

      CHARACTER CP*(*)

      PARAMETER (NPARA = 113)

      CHARACTER CPARAS(NPARA)*8
      CHARACTER CPARAL(NPARA)*40
      INTEGER   ITYPE(NPARA)
      CHARACTER CMSG*80

      LOGICAL LCHREQ

      EXTERNAL  LCHREQ,LENC

      SAVE
* ---- SHORT NAME ----
      DATA      CPARAS(  1)/'RDX     '/, ITYPE(  1) / 3 /
      DATA      CPARAS(  2)/'RDY     '/, ITYPE(  2) / 3 /
      DATA      CPARAS(  3)/'LCLIP   '/, ITYPE(  3) / 2 /
      DATA      CPARAS(  4)/'LCHAR   '/, ITYPE(  4) / 2 /
      DATA      CPARAS(  5)/'LLNINT  '/, ITYPE(  5) / 2 /
      DATA      CPARAS(  6)/'LGCINT  '/, ITYPE(  6) / 2 /
      DATA      CPARAS(  7)/'LSOFTF  '/, ITYPE(  7) / 2 /
      DATA      CPARAS(  8)/'LCL2TN  '/, ITYPE(  8) / 2 /
      DATA      CPARAS(  9)/'IRMODE  '/, ITYPE(  9) / 1 /
      DATA      CPARAS( 10)/'BITLEN  '/, ITYPE( 10) / 3 /
      DATA      CPARAS( 11)/'MOVE    '/, ITYPE( 11) / 1 /
      DATA      CPARAS( 12)/'NBITS   '/, ITYPE( 12) / 1 /
      DATA      CPARAS( 13)/'LCNTL   '/, ITYPE( 13) / 2 /
      DATA      CPARAS( 14)/'SMALL   '/, ITYPE( 14) / 3 /
      DATA      CPARAS( 15)/'SHIFT   '/, ITYPE( 15) / 3 /
      DATA      CPARAS( 16)/'ISUP    '/, ITYPE( 16) / 1 /
      DATA      CPARAS( 17)/'ISUB    '/, ITYPE( 17) / 1 /
      DATA      CPARAS( 18)/'IRST    '/, ITYPE( 18) / 1 /
      DATA      CPARAS( 19)/'LFULL   '/, ITYPE( 19) / 2 /
      DATA      CPARAS( 20)/'PMFACT  '/, ITYPE( 20) / 3 /
      DATA      CPARAS( 21)/'NPMSKIP '/, ITYPE( 21) / 1 /
      DATA      CPARAS( 22)/'RFAROT  '/, ITYPE( 22) / 3 /
      DATA      CPARAS( 23)/'TNBLEN  '/, ITYPE( 23) / 3 /
      DATA      CPARAS( 24)/'IFONT   '/, ITYPE( 24) / 1 /
      DATA      CPARAS( 25)/'LROT    '/, ITYPE( 25) / 2 /
      DATA      CPARAS( 26)/'IROT    '/, ITYPE( 26) / 1 /
      DATA      CPARAS( 27)/'FWC     '/, ITYPE( 27) / 3 /
      DATA      CPARAS( 28)/'CWL     '/, ITYPE( 28) / 3 /
      DATA      CPARAS( 29)/'FFCT    '/, ITYPE( 29) / 3 /
      DATA      CPARAS( 30)/'INDEXC  '/, ITYPE( 30) / 1 /
      DATA      CPARAS( 31)/'LBUFF   '/, ITYPE( 31) / 2 /
      DATA      CPARAS( 32)/'NBUFF   '/, ITYPE( 32) / 1 /
      DATA      CPARAS( 33)/'RBUFF   '/, ITYPE( 33) / 3 /
      DATA      CPARAS( 34)/'LCURV   '/, ITYPE( 34) / 2 /
      DATA      CPARAS( 35)/'RCURV   '/, ITYPE( 35) / 3 /
      DATA      CPARAS( 36)/'LPROP   '/, ITYPE( 36) / 2 /
      DATA      CPARAS( 37)/'LUARW   '/, ITYPE( 37) / 2 /
      DATA      CPARAS( 38)/'AFACT   '/, ITYPE( 38) / 3 /
      DATA      CPARAS( 39)/'CONST   '/, ITYPE( 39) / 3 /
      DATA      CPARAS( 40)/'CONSTM  '/, ITYPE( 40) / 3 /
      DATA      CPARAS( 41)/'ANGLE   '/, ITYPE( 41) / 3 /
      DATA      CPARAS( 42)/'LARROW  '/, ITYPE( 42) / 2 /
      DATA      CPARAS( 43)/'LATONE  '/, ITYPE( 43) / 2 /
      DATA      CPARAS( 44)/'IATONE  '/, ITYPE( 44) / 1 /
      DATA      CPARAS( 45)/'IWS     '/, ITYPE( 45) / 1 /
      DATA      CPARAS( 46)/'ITR     '/, ITYPE( 46) / 1 /
      DATA      CPARAS( 47)/'VXMIN   '/, ITYPE( 47) / 3 /
      DATA      CPARAS( 48)/'VXMAX   '/, ITYPE( 48) / 3 /
      DATA      CPARAS( 49)/'VYMIN   '/, ITYPE( 49) / 3 /
      DATA      CPARAS( 50)/'VYMAX   '/, ITYPE( 50) / 3 /
      DATA      CPARAS( 51)/'UXMIN   '/, ITYPE( 51) / 3 /
      DATA      CPARAS( 52)/'UXMAX   '/, ITYPE( 52) / 3 /
      DATA      CPARAS( 53)/'UYMIN   '/, ITYPE( 53) / 3 /
      DATA      CPARAS( 54)/'UYMAX   '/, ITYPE( 54) / 3 /
      DATA      CPARAS( 55)/'VXOFF   '/, ITYPE( 55) / 3 /
      DATA      CPARAS( 56)/'VYOFF   '/, ITYPE( 56) / 3 /
      DATA      CPARAS( 57)/'PLX     '/, ITYPE( 57) / 3 /
      DATA      CPARAS( 58)/'PLY     '/, ITYPE( 58) / 3 /
      DATA      CPARAS( 59)/'PLROT   '/, ITYPE( 59) / 3 /
      DATA      CPARAS( 60)/'SIMFAC  '/, ITYPE( 60) / 3 /
      DATA      CPARAS( 61)/'STLAT1  '/, ITYPE( 61) / 3 /
      DATA      CPARAS( 62)/'STLAT2  '/, ITYPE( 62) / 3 /
      DATA      CPARAS( 63)/'TXMIN   '/, ITYPE( 63) / 3 /
      DATA      CPARAS( 64)/'TXMAX   '/, ITYPE( 64) / 3 /
      DATA      CPARAS( 65)/'TYMIN   '/, ITYPE( 65) / 3 /
      DATA      CPARAS( 66)/'TYMAX   '/, ITYPE( 66) / 3 /
      DATA      CPARAS( 67)/'RSAT    '/, ITYPE( 67) / 3 /
      DATA      CPARAS( 68)/'LDEG    '/, ITYPE( 68) / 2 /
      DATA      CPARAS( 69)/'NFRAME  '/, ITYPE( 69) / 1 /
      DATA      CPARAS( 70)/'NPAGE   '/, ITYPE( 70) / 1 /
      DATA      CPARAS( 71)/'NLEVEL  '/, ITYPE( 71) / 1 /
      DATA      CPARAS( 72)/'FACTOR  '/, ITYPE( 72) / 3 /
      DATA      CPARAS( 73)/'INDEX   '/, ITYPE( 73) / 1 /
      DATA      CPARAS( 74)/'LCORNER '/, ITYPE( 74) / 2 /
      DATA      CPARAS( 75)/'LTITLE  '/, ITYPE( 75) / 2 /
      DATA      CPARAS( 76)/'CORNER  '/, ITYPE( 76) / 3 /
      DATA      CPARAS( 77)/'XPAD    '/, ITYPE( 77) / 3 /
      DATA      CPARAS( 78)/'YPAD    '/, ITYPE( 78) / 3 /
      DATA      CPARAS( 79)/'LWIDE   '/, ITYPE( 79) / 2 /
      DATA      CPARAS( 80)/'ITR3    '/, ITYPE( 80) / 1 /
      DATA      CPARAS( 81)/'TILT3   '/, ITYPE( 81) / 3 /
      DATA      CPARAS( 82)/'ANGLE3  '/, ITYPE( 82) / 3 /
      DATA      CPARAS( 83)/'XOFF3   '/, ITYPE( 83) / 3 /
      DATA      CPARAS( 84)/'YOFF3   '/, ITYPE( 84) / 3 /
      DATA      CPARAS( 85)/'XOBJ3   '/, ITYPE( 85) / 3 /
      DATA      CPARAS( 86)/'YOBJ3   '/, ITYPE( 86) / 3 /
      DATA      CPARAS( 87)/'ZOBJ3   '/, ITYPE( 87) / 3 /
      DATA      CPARAS( 88)/'XEYE3   '/, ITYPE( 88) / 3 /
      DATA      CPARAS( 89)/'YEYE3   '/, ITYPE( 89) / 3 /
      DATA      CPARAS( 90)/'ZEYE3   '/, ITYPE( 90) / 3 /
      DATA      CPARAS( 91)/'IXC3    '/, ITYPE( 91) / 1 /
      DATA      CPARAS( 92)/'IYC3    '/, ITYPE( 92) / 1 /
      DATA      CPARAS( 93)/'SEC3    '/, ITYPE( 93) / 3 /
      DATA      CPARAS( 94)/'L2TO3   '/, ITYPE( 94) / 2 /
      DATA      CPARAS( 95)/'VXMIN3  '/, ITYPE( 95) / 3 /
      DATA      CPARAS( 96)/'VXMAX3  '/, ITYPE( 96) / 3 /
      DATA      CPARAS( 97)/'VYMIN3  '/, ITYPE( 97) / 3 /
      DATA      CPARAS( 98)/'VYMAX3  '/, ITYPE( 98) / 3 /
      DATA      CPARAS( 99)/'VZMIN3  '/, ITYPE( 99) / 3 /
      DATA      CPARAS(100)/'VZMAX3  '/, ITYPE(100) / 3 /
      DATA      CPARAS(101)/'UXMIN3  '/, ITYPE(101) / 3 /
      DATA      CPARAS(102)/'UXMAX3  '/, ITYPE(102) / 3 /
      DATA      CPARAS(103)/'UYMIN3  '/, ITYPE(103) / 3 /
      DATA      CPARAS(104)/'UYMAX3  '/, ITYPE(104) / 3 /
      DATA      CPARAS(105)/'UZMIN3  '/, ITYPE(105) / 3 /
      DATA      CPARAS(106)/'UZMAX3  '/, ITYPE(106) / 3 /
      DATA      CPARAS(107)/'VXORG3  '/, ITYPE(107) / 3 /
      DATA      CPARAS(108)/'VYORG3  '/, ITYPE(108) / 3 /
      DATA      CPARAS(109)/'VZORG3  '/, ITYPE(109) / 3 /
      DATA      CPARAS(110)/'SIMFAC3 '/, ITYPE(110) / 3 /
      DATA      CPARAS(111)/'LXLOG3  '/, ITYPE(111) / 2 /
      DATA      CPARAS(112)/'LYLOG3  '/, ITYPE(112) / 2 /
      DATA      CPARAS(113)/'LZLOG3  '/, ITYPE(113) / 2 /
* ---- LONG  NAME ----
      DATA      CPARAL(  1) / 'INTERPOLATION_ANGLE_X' /
      DATA      CPARAL(  2) / 'INTERPOLATION_ANGLE_Y' /
      DATA      CPARAL(  3) / 'ENABLE_CLIPING' /
      DATA      CPARAL(  4) / 'ENABLE_LINE_LABELING' /
      DATA      CPARAL(  5) / 'ENABLE_LINEAR_INTERPOLATION' /
      DATA      CPARAL(  6) / 'ENABLE_GREATCIRCLE_INTERPOLATION' /
      DATA      CPARAL(  7) / 'ENABLE_SOFTFILL' /
      DATA      CPARAL(  8) / 'ENABLE_COLOR_SUBSTITUTION' /
      DATA      CPARAL(  9) / 'BOUNDARY_DIRECTION' /
      DATA      CPARAL( 10) / 'LINE_CYCLE_LENGTH' /
      DATA      CPARAL( 11) / 'LINE_RESUME_MODE' /
      DATA      CPARAL( 12) / 'PATTERN_BIT_LENGTH' /
      DATA      CPARAL( 13) / 'ENABLE_CONTROL_CHAR' /
      DATA      CPARAL( 14) / 'SCRIPT_HEIGHT' /
      DATA      CPARAL( 15) / 'SCRIPT_SHIFT' /
      DATA      CPARAL( 16) / 'BEGIN_SUPERSCRIPT' /
      DATA      CPARAL( 17) / 'BEGIN_SUBSCRIPT' /
      DATA      CPARAL( 18) / 'END_SCRIPT' /
      DATA      CPARAL( 19) / 'USE_FULL_WINDOW' /
      DATA      CPARAL( 20) / 'POLIMARKER_HEIGHT' /
      DATA      CPARAL( 21) / 'POLIMARKER_INTERVAL' /
      DATA      CPARAL( 22) / '****RFAROT  ' /
      DATA      CPARAL( 23) / 'TONE_CYCLE_LENGTH' /
      DATA      CPARAL( 24) / '++++IFONT   ' /
      DATA      CPARAL( 25) / 'ENABLE_LINE_LABEL_ROTATION' /
      DATA      CPARAL( 26) / 'LINE_LABEL_ROTATION_ANGLE' /
      DATA      CPARAL( 27) / 'LINE_LABEL_SPACE' /
      DATA      CPARAL( 28) / 'LINE_CYCLE_LENGTH' /
      DATA      CPARAL( 29) / 'LINE_START_POSITION' /
      DATA      CPARAL( 30) / 'LABEL_CHAR_INDEX' /
      DATA      CPARAL( 31) / 'ENABLE_LINE_BUFFERING' /
      DATA      CPARAL( 32) / 'LINE_BUFFERING_LENGTH' /
      DATA      CPARAL( 33) / 'RESUME_POSITION_AFTER_BUFFERING' /
      DATA      CPARAL( 34) / 'DISABLE_LINE_LABEL_AT_CURVE' /
      DATA      CPARAL( 35) / 'LINE_LABEL_THRESHOLD_CURVATURE' /
      DATA      CPARAL( 36) / 'FIX_ARROWHEAD_PROPORTION' /
      DATA      CPARAL( 37) / 'ENABLE_ARROWHEAD_MAPPING' /
      DATA      CPARAL( 38) / 'ARROWHEAD_PROPOTION' /
      DATA      CPARAL( 39) / 'ARROWHEAD_SIZE' /
      DATA      CPARAL( 40) / 'ARROWHEAD_SIZE_MAP' /
      DATA      CPARAL( 41) / 'ARROWHEAD_ANGLE' /
      DATA      CPARAL( 42) / '----LARROW  ' /
      DATA      CPARAL( 43) / 'ENABLE_ARROWHEAD_SHADE' /
      DATA      CPARAL( 44) / 'ARROWHEAD_SHADE_PATTERN' /
      DATA      CPARAL( 45) / '++++IWS     ' /
      DATA      CPARAL( 46) / '++++ITR     ' /
      DATA      CPARAL( 47) / '++++VXMIN   ' /
      DATA      CPARAL( 48) / '++++VXMAX   ' /
      DATA      CPARAL( 49) / '++++VYMIN   ' /
      DATA      CPARAL( 50) / '++++VYMAX   ' /
      DATA      CPARAL( 51) / '++++UXMIN   ' /
      DATA      CPARAL( 52) / '++++UXMAX   ' /
      DATA      CPARAL( 53) / '++++UYMIN   ' /
      DATA      CPARAL( 54) / '++++UYMAX   ' /
      DATA      CPARAL( 55) / '++++VXOFF   ' /
      DATA      CPARAL( 56) / '++++VYOFF   ' /
      DATA      CPARAL( 57) / '++++PLX     ' /
      DATA      CPARAL( 58) / '++++PLY     ' /
      DATA      CPARAL( 59) / '++++PLROT   ' /
      DATA      CPARAL( 60) / '++++SIMFAC  ' /
      DATA      CPARAL( 61) / '++++STLAT1  ' /
      DATA      CPARAL( 62) / '++++STLAT2  ' /
      DATA      CPARAL( 63) / '++++TXMIN   ' /
      DATA      CPARAL( 64) / '++++TXMAX   ' /
      DATA      CPARAL( 65) / '++++TYMIN   ' /
      DATA      CPARAL( 66) / '++++TYMAX   ' /
      DATA      CPARAL( 67) / 'SATELLITE_ALTITUDE' /
      DATA      CPARAL( 68) / 'USE_DEGREE' /
      DATA      CPARAL( 69) / '****NFRAME  ' /
      DATA      CPARAL( 70) / '****NPAGE   ' /
      DATA      CPARAL( 71) / '****NLEVEL  ' /
      DATA      CPARAL( 72) / '****FACTOR  ' /
      DATA      CPARAL( 73) / 'CORNERMARK_INDEX' /
      DATA      CPARAL( 74) / 'DRAW_CORNERMARK' /
      DATA      CPARAL( 75) / 'DRAW_PAGE_TITLE' /
      DATA      CPARAL( 76) / 'CORNERMARK_LENGTH' /
      DATA      CPARAL( 77) / '****XPAD    ' /
      DATA      CPARAL( 78) / '****YPAD    ' /
      DATA      CPARAL( 79) / '****LWIDE   ' /
      DATA      CPARAL( 80) / '++++ITR3    ' /
      DATA      CPARAL( 81) / '++++TILT3   ' /
      DATA      CPARAL( 82) / '++++ANGLE3  ' /
      DATA      CPARAL( 83) / '++++XOFF3   ' /
      DATA      CPARAL( 84) / '++++YOFF3   ' /
      DATA      CPARAL( 85) / '++++XOBJ3   ' /
      DATA      CPARAL( 86) / '++++YOBJ3   ' /
      DATA      CPARAL( 87) / '++++ZOBJ3   ' /
      DATA      CPARAL( 88) / '++++XEYE3   ' /
      DATA      CPARAL( 89) / '++++YEYE3   ' /
      DATA      CPARAL( 90) / '++++ZEYE3   ' /
      DATA      CPARAL( 91) / '++++IXC3    ' /
      DATA      CPARAL( 92) / '++++IYC3    ' /
      DATA      CPARAL( 93) / '++++SEC3    ' /
      DATA      CPARAL( 94) / '****L2TO3   ' /
      DATA      CPARAL( 95) / '++++VXMIN3  ' /
      DATA      CPARAL( 96) / '++++VXMAX3  ' /
      DATA      CPARAL( 97) / '++++VYMIN3  ' /
      DATA      CPARAL( 98) / '++++VYMAX3  ' /
      DATA      CPARAL( 99) / '++++VZMIN3  ' /
      DATA      CPARAL(100) / '++++VZMAX3  ' /
      DATA      CPARAL(101) / '++++UXMIN3  ' /
      DATA      CPARAL(102) / '++++UXMAX3  ' /
      DATA      CPARAL(103) / '++++UYMIN3  ' /
      DATA      CPARAL(104) / '++++UYMAX3  ' /
      DATA      CPARAL(105) / '++++UZMIN3  ' /
      DATA      CPARAL(106) / '++++UZMAX3  ' /
      DATA      CPARAL(107) / '++++VXORG3  ' /
      DATA      CPARAL(108) / '++++VYORG3  ' /
      DATA      CPARAL(109) / '++++VZORG3  ' /
      DATA      CPARAL(110) / '++++SIMFAC3 ' /
      DATA      CPARAL(111) / '++++LXLOG3  ' /
      DATA      CPARAL(112) / '++++LYLOG3  ' /
      DATA      CPARAL(113) / '++++LZLOG3  ' /

      NCP = NPARA

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPQID(CP, IDX)

      DO 10 N = 1, NPARA
        IF (LCHREQ(CP, CPARAS(N))
     &        .OR. LCHREQ(CP, CPARAL(N))) THEN
           IDX = N
           RETURN
        ENDIF
   10 CONTINUE
      CMSG='PARAMETER '''//CP(1:LENC(CP))//''' IS NOT DEFINED.'
      CALL MSGDMP('E','SGPQID',CMSG)

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPQCP(IDX, CP)

      IF (1.LE.IDX .AND. IDX.LE.NPARA) THEN
        CP = CPARAS(IDX)
      ELSE
        CALL MSGDMP('E','SGPQCP','IDX IS OUT OF RANGE.')
      ENDIF

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPQCL(IDX, CP)

      IF (1.LE.IDX .AND. IDX.LE.NPARA) THEN
         CP = CPARAL(IDX)
      ELSE
         CALL MSGDMP('E','SGPQCL','IDX IS OUT OF RANGE.')
      ENDIF

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPQIT(IDX, ITP)

      IF (1.LE.IDX .AND. IDX.LE.NPARA) THEN
         ITP = ITYPE(IDX)
      ELSE
         CALL MSGDMP('E','SGPQIT','IDX IS OUT OF RANGE.')
      ENDIF

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPQVL(IDX, IPARA)

      IF (1.LE.IDX .AND. IDX.LE.NPARA) THEN
         IF(ITYPE(IDX) .EQ. 1) THEN
            CALL SGIQID(CPARAS(IDX), ID)
            CALL SGIQVL(ID, IPARA)
         ELSE IF(ITYPE(IDX) .EQ. 2) THEN
            CALL SGLQID(CPARAS(IDX), ID)
            CALL SGLQVL(ID, IPARA)
         ELSE IF(ITYPE(IDX) .EQ. 3) THEN
            CALL SGRQID(CPARAS(IDX), ID)
            CALL SGRQVL(ID, IPARA)
         ENDIF
      ELSE
         CALL MSGDMP('E','SGPQVL','IDX IS OUT OF RANGE.')
      ENDIF

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPSVL(IDX, IPARA)

      IF (1.LE.IDX .AND. IDX.LE.NPARA) THEN
         IF(ITYPE(IDX) .EQ. 1) THEN
            CALL SGIQID(CPARAS(IDX), ID)
            CALL SGISVL(IDX, IPARA)
         ELSE IF(ITYPE(IDX) .EQ. 2) THEN
            CALL SGLQID(CPARAS(IDX), ID)
            CALL SGLSVL(IDX, IPARA)
         ELSE IF(ITYPE(IDX) .EQ. 3) THEN
            CALL SGRQID(CPARAS(IDX), ID)
            CALL SGRSVL(IDX, IPARA)
         ENDIF
      ELSE
        CALL MSGDMP('E','SGPSVL','IDX IS OUT OF RANGE.')
      ENDIF

      RETURN
*-----------------------------------------------------------------------
      ENTRY SGPQIN(CP, IN)

      DO 20 N = 1, NPARA
         IF (LCHREQ(CP, CPARAS(N)) .OR.
     &        LCHREQ(CP, CPARAL(N))) THEN
            IN = N
            RETURN
         ENDIF
 20   CONTINUE

      IN = 0

      RETURN
      END
