%N pgfuny %F $MIR/src/pgfuny.f
%D Function defined by X = F(Y)
%B
      SUBROUTINE PGFUNY (FX, N, YMIN, YMAX, PGFLAG)
      REAL    FX
      EXTERNAL FX
      INTEGER N
      REAL    YMIN, YMAX
      INTEGER PGFLAG

 Draw a curve defined by the equation X = FX(Y), where FY is a
 user-supplied subroutine.

 Arguments:
  FX     (external real function): supplied by the user, evaluates
                    X value at a given Y-coordinate.
  N      (input)  : the number of points required to define the
                    curve. The function FX will be called N+1 times.
                    If PGFLAG=0 and N is greater than 1000, 1000
                    will be used instead.  If N is less than 1,
                    nothing will be drawn.
  YMIN   (input)  : the minimum value of Y.
  YMAX   (input)  : the maximum value of Y.
  PGFLAG (input)  : if PGFLAG = 1, the curve is plotted in the
                    current window and viewport; if PGFLAG = 0,
                    PGENV is called automatically by PGFUNY to
                    start a new plot with Y limits (YMIN, YMAX)
                    and automatic scaling in X.

 Note: The function FX must be declared EXTERNAL in the Fortran
 program unit that calls PGFUNY.  It has one argument, the
 y-coordinate at which the x value is required, e.g.
   REAL FUNCTION FX(Y)
   REAL Y
   FX = .....
   END
