      PARAMETER ( M = 400)
      REAL       W(M) , CR1(M) , CR2(M) , CI(M) , ROOT
     *         , SX(M) , SY(M)
     *         , WEND , CRSTR , CREND , CIEND
     *         , CHOUSEI , UNST
      INTEGER  JW
     *       , IPAT , NC , JCRT , JSIZE
      COMMON/PLPNTB/HPOINT,HCHAR
      DATA IPAT/Z'0000F0F0'/
*
      WSTR  = 0.0
      WEND  = 2.0
      CRSTR = - 1.0
      CREND =   1.0
      CIEND = 1.0
      IXG1  = 2
      IXG2  = 5
      IYGR1 = 4
      IYGR2 = 5
      IYGI1 = 2
      IYGI2 = 5
      IR    = 4
      IGP   = 7
      IGM   = 1
      UNST  = 1.0E-8
      HPOINT= 0.1
      CHOUSEI = ( HPOINT - 0.03 ) / 10.0 / 2.0
*
        DO 30 JW = 1 , M
          W(JW) = REAL(JW)/REAL(M)*WEND
          ROOT  = ( 1.0 - W(JW)*2 )**2 - EXP(-W(JW)*4)
          IF (ROOT.GT.0) THEN
            CR1(JW) =   SQRT(ROOT) / (W(JW)*2)
            CR2(JW) = - SQRT(ROOT) / (W(JW)*2)
            CI(JW)  =   0.0
          ELSE
            CR1(JW) =   0.0
            CR2(JW) =   0.0
            CI(JW)  =   SQRT(-ROOT) / (W(JW)*2)
          ENDIF
 30     CONTINUE
*
      CALL PLSTRT ( 20.0 , 20.0 , 'NLP1' )
      CALL DASHD ( IPAT , NC , JCRT , JSIZE )
      CALL SET ( 0.25, 0.75, 0.45, 0.95,WSTR ,WEND, CRSTR ,CREND , 1 )
      CALL SETLAB ( 1 , 0 , 20 , 18 , 6 , 6H(F6.1) )
      CALL SETLAB ( 2 , 0 , 20 , 18 , 6 , 6H(F6.2) )
      CALL PGRIDA (IXG1,IXG2,IYGR1,IYGR2,  0 ,  1 ,  0 ,  0 , -1 , -1 )
*
*
*
      CALL OPTN ( 'INTN' , 'LOW ' )
          DO 40 JW = 1 , M
            SX(JW) = W(JW)
            SY(JW) = CR1(JW)
              IF (SY(JW).GT.CREND) THEN
                SY(JW) = CREND
              ELSEIF (SY(JW).LT.CRSTR) THEN
                SY(JW) = CRSTR
              ENDIF
 40       CONTINUE
      CALL PCURVE ( SX , SY , M )
*
          DO 50 JW = 1 , M
            SX(JW) = W(JW)
            SY(JW) = CR2(JW)
              IF (SY(JW).GT.CREND) THEN
                SY(JW) = CREND
              ELSEIF (SY(JW).LT.CRSTR) THEN
                SY(JW) = CRSTR
              ENDIF
 50       CONTINUE
      CALL PCURVE ( SX , SY , M )
*
      CALL OPTN ( 'INTN' , 'HIGH' )
*
        DO 60 JW = 1 , M
          IF (CI(JW).GT.UNST) THEN
            X  = W(JW)  - CHOUSEI * WEND * 0.5
            YR = CR1(JW)- CHOUSEI * CREND * 2.0
            CALL POINT ( X , YR )
          ENDIF
 60     CONTINUE
*
      CWIDTH = CREND - CRSTR
      CMEAN  = ( CREND + CRSTR ) / 2.0
      WWIDTH = WEND - WSTR
      CALL PWRIT(WSTR-WWIDTH*0.20, CMEAN , 'Cr' , 2 , 36 , 0 , 1 )
*
      CALL SET ( 0.25, 0.75, 0.15, 0.4 ,WSTR,WEND,   0.0 ,CIEND , 1 )
      CALL SETLAB ( 1 , 0 , 20 , 18 , 6 , 6H(F6.1) )
      CALL SETLAB ( 2 , 0 , 20 , 18 , 6 , 6H(F6.2) )
      CALL PGRIDA (IXG1,IXG2,IYGI1,IYGI2,  1 ,  1 ,  0 ,  0 , -1 , -1 )
*
        DO 70 JW = 1 , M
          IF (CI(JW).GT.UNST) THEN
            X  = W(JW)  - CHOUSEI * WEND
            YI = CI(JW) - CHOUSEI * CIEND * 2.0
            CALL POINT ( X , YI )
          ENDIF
 70     CONTINUE
*
      CALL PWRIT(WSTR-WWIDTH*0.20, CIEND*0.5, 'Ci' , 2 , 36 , 0 , 1 )
      CALL PWRIT(WSTR+WWIDTH*0.50, CIEND*(-0.30), 'k'
     *            , 1 , 36 , 0 , 0 )
*
      CALL PLFIN
      STOP
      END
