30
31
32
33#include "implicit_f.inc"
34
35
36
37 INTEGER
38 INTEGER NEL(*),ISK(*),IASC(*),L
39
40
41
42 INTEGER J2, I2, I,J, NEL1,ISK1
43 INTEGER LI,LJ,K,IC1
44 INTEGER :: MODE,INDICE,INDICE2
45 INTEGER, DIMENSION(:), ALLOCATABLE :: ITRI,INDX
46 INTEGER, DIMENSION(:), ALLOCATABLE :: IASC_SAVE,ISK_SAVE
47 INTEGER, DIMENSION(70000) :: WORK
48
49 ALLOCATE( itri(nsel) )
50 ALLOCATE( indx(2*nsel) )
51 ALLOCATE( iasc_save(l*nsel) )
52 ALLOCATE( isk_save(nsel) )
53
54
55 itri(1:nsel) = nel(1:nsel)
56 iasc_save(1:l*nsel) = iasc(1:l*nsel)
57 isk_save(1:nsel) = isk(1:nsel)
58 DO i=1,nsel
59 indx(i) = i
60 ENDDO
61 mode=0
62 CALL my_orders( mode, work, itri, indx, nsel , 1)
63
64 DO i=1,nsel
65 nel(i) = itri(indx(i))
66 isk(i) = isk_save(indx(i))
67 ENDDO
68 DO i=1,nsel
69 indice = (i-1)*l
70 indice2 = (indx(i)-1)*l
71 DO j=1,l
72 iasc(indice+j) = iasc_save(indice2+j)
73 ENDDO
74 ENDDO
75
76 DEALLOCATE( itri )
77 DEALLOCATE( indx )
78 DEALLOCATE( iasc_save )
79 DEALLOCATE( isk_save )
80
81 RETURN
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)