1 /* i7shft.f -- translated by f2c (version 20010821).
2    You must link the resulting object file with the libraries:
3 	-lf2c -lm   (in that order)
4 */
5 
6 #include "f2c.h"
7 
i7shft_(integer * n,integer * k,integer * x)8 /* Subroutine */ int i7shft_(integer *n, integer *k, integer *x)
9 {
10     /* System generated locals */
11     integer i__1;
12 
13     /* Local variables */
14     static integer i__, t, k1, ii, nm1;
15 
16 
17 /*  ***  SHIFT X(K),...,X(N) LEFT CIRCULARLY ONE POSITION IF K .GT. 0. */
18 /*  ***  SHIFT X(-K),...,X(N) RIGHT CIRCULARLY ONE POSITION IF K .LT. 0. */
19 
20 
21 
22     /* Parameter adjustments */
23     --x;
24 
25     /* Function Body */
26     if (*k < 0) {
27 	goto L20;
28     }
29     if (*k >= *n) {
30 	goto L999;
31     }
32     nm1 = *n - 1;
33     t = x[*k];
34     i__1 = nm1;
35     for (i__ = *k; i__ <= i__1; ++i__) {
36 /* L10: */
37 	x[i__] = x[i__ + 1];
38     }
39     x[*n] = t;
40     goto L999;
41 
42 L20:
43     k1 = -(*k);
44     if (k1 >= *n) {
45 	goto L999;
46     }
47     t = x[*n];
48     nm1 = *n - k1;
49     i__1 = nm1;
50     for (ii = 1; ii <= i__1; ++ii) {
51 	i__ = *n - ii;
52 	x[i__ + 1] = x[i__];
53 /* L30: */
54     }
55     x[k1] = t;
56 L999:
57     return 0;
58 /*  ***  LAST LINE OF I7SHFT FOLLOWS  *** */
59 } /* i7shft_ */
60 
61