34
36
37
38
39#include "implicit_f.inc"
40#include "comlock.inc"
41
42
43
44
45
46
47
48
49
50
51 INTEGER I_STOK,MFROT,NSN4,JLT,NFT ,NIN,NRTS
52 INTEGER CAND_N(*),CAND_E(*),ADDCM(*),CHAINE(2,*),IFPEN(*),ITAB(*)
53
55 . cand_fx(*),cand_fy(*),cand_fz(*),stfs(*)
56
57
58
59 INTEGER I,N,K,IADFIN,IAD,IAD0,J,II,SLVE,NN
60
61
62
63
64
65 DO i=1,jlt
66 ii = i + nft
67 IF(ifpen(ii) == 1)THEN
68 slve = cand_n(ii)
69 IF(slve<=nrts)THEN
70 IF(stfs(slve)==zero)THEN
71 ifpen(ii) = 0
72 ENDIF
73 ELSE
74 nn = slve - nrts
75 IF(
stifi(nin)%P(nn)==zero)
THEN
76 ifpen(ii) = 0
77 ENDIF
78 ENDIF
79 ENDIF
80 ENDDO
81
82
83 iad0 = 0
84 DO i=1,jlt
85 ii = i + nft
86 IF(ifpen(ii) == 1)THEN
87 iad=addcm(cand_e(ii))
88 j=0
89 DO WHILE(iad/=0.AND.j<nsn4)
90 j=j+1
91 IF(chaine(1,iad)==cand_n(ii))THEN
92 ifpen(ii) = 0
93 iad=0
94 ELSE
95 iad0=iad
96 iad=chaine(2,iad)
97 ENDIF
98 ENDDO
99 IF(ifpen(ii) == 1)THEN
100 i_stok = i_stok + 1
101 iadfin=i_stok
102 IF(iadfin>nsn4) THEN
103 RETURN
104 ENDIF
105 chaine(1,iadfin)=cand_n(ii)
106 chaine(2,iadfin)=0
107 IF(addcm(cand_e(ii))==0)THEN
108 addcm(cand_e(ii))=iadfin
109 ELSE
110 chaine(2,iad0)=iadfin
111 ENDIF
112 cand_fx(i_stok) = cand_fx(ii)
113
114 cand_fy(i_stok) = cand_fy(ii)
115 cand_fz(i_stok) = cand_fz(ii)
116 cand_e(i_stok) = cand_e(ii)
117 cand_n(i_stok) = cand_n(ii)
118 ifpen(i_stok) = ifpen(ii)
119 ENDIF
120 ENDIF
121 ENDDO
122
123 RETURN
type(real_pointer), dimension(:), allocatable stifi