34
35
36
39
40
41
42
43#include "implicit_f.inc"
44
45
46
47
48
49
50 INTEGER NLIST,KK,NBBOX,ID
51 INTEGER LIST(NLIST),INDEX(NBBOX*3),IBOXTMP(NBBOX),IX1(NBBOX),IX2(NBBOX)
52 CHARACTER(LEN=NCHARTITLE) ,INTENT(IN) :: TITR
53
54
55
56 INTEGER I,J,NBOX,NOLD,K,K0,K1,KALL,ID0,
57 . IWORK(70000),ISIGN(NLIST),ISIGN1(NLIST),
58 . SIGNOLD,FAC(NLIST+1),INDXOLD,(NLIST+1),
59 . FACX,LIST1(NLIST),IDEL(NLIST),IDBL(NLIST)
60 CHARACTER BOX*3
61
62
63
64 DO i=1,nlist
65 isign(i) = sign(1,list(i))
66 list(i) = abs(list(i))
67 ENDDO
68
69 CALL my_orders(0,iwork,list,index,nlist,1)
70 DO i=1,nlist
71 index(nlist+i) = list(index(i))
72 isign1(i)= isign(index(i))
73 ENDDO
74
75 DO i=1,nlist
76 list(i) = index(nlist+i)
77 isign(i) = isign1(i)
78 ENDDO
79
80 nbox = nlist
81
82
83
84 IF (kk == 0) THEN
85 DO i=1,nbbox
86 ix2(i) = iboxtmp(i)
87 ENDDO
89 DO i=1,nbbox
90 ix1(i) = ix2(index(i))
91 ENDDO
92 DO i=1,nbbox
93 ix2(i) = index(i)
94 ENDDO
95 ENDIF
96
97
98
99
100 i=1
101 j=1
102 DO i=1,nbox
103 DO WHILE(abs(list(i)) > ix1(j).AND. j < nbbox)
104 j=j+1
105 ENDDO
106 IF (abs(list(i)) == ix1(j))THEN
107 list(i) = ix2(j)*isign(i)
108 ELSE
110 . msgtype=msgerror,
111 . anmode=aninfo,
113 . c1=titr,
114 . i2=list(i))
116 RETURN
117 ENDIF
118 ENDDO
119
121
122 RETURN
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
integer, parameter nchartitle
integer function nboxlst(list, nlist, iboxtmp, nbbox, ix1, ix2, index, kk, id, titr)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)