/* isamax.f -- translated by f2c (version 19991025). You must link the resulting object file with the libraries: -lf2c -lm (in that order) */
#include "FLA_f2c.h"
integer isamax_(integer *n, real *sx, integer *incx)
{
    /* System generated locals */
    integer ret_val, i__1;
    real r__1;
    /* Local variables */
    real smax;
    integer i__, ix;
    /* finds the index of element having max. absolute value. */
    /* jack dongarra, linpack, 3/11/78. */
    /* modified 3/93 to return if incx .le. 0. */
    /* modified 12/3/93, array(1) declarations changed to array(*) */
    /* Parameter adjustments */
    --sx;
    /* Function Body */
    ret_val = 0;
    if (*n < 1 || *incx <= 0)
    {
        return ret_val;
    }
    ret_val = 1;
    if (*n == 1)
    {
        return ret_val;
    }
    if (*incx == 1)
    {
        goto L20;
    }
    /* code for increment not equal to 1 */
    ix = 1;
    smax = f2c_abs(sx[1]);
    ix += *incx;
    i__1 = *n;
    for (i__ = 2;
            i__ <= i__1;
            ++i__)
    {
        if ((r__1 = sx[ix], f2c_abs(r__1)) <= smax)
        {
            goto L5;
        }
        ret_val = i__;
        smax = (r__1 = sx[ix], f2c_abs(r__1));
L5:
        ix += *incx;
        /* L10: */
    }
    return ret_val;
    /* code for increment equal to 1 */
L20:
    smax = f2c_abs(sx[1]);
    i__1 = *n;
    for (i__ = 2;
            i__ <= i__1;
            ++i__)
    {
        if ((r__1 = sx[i__], f2c_abs(r__1)) <= smax)
        {
            goto L30;
        }
        ret_val = i__;
        smax = (r__1 = sx[i__], f2c_abs(r__1));
L30:
        ;
    }
    return ret_val;
}
/* isamax_ */

