35
36
37
38
39
40
41
42 USE intbufdef_mod
44
45
46
47#include "implicit_f.inc"
48#include "comlock.inc"
49
50
51
52#include "com04_c.inc"
53#include "param_c.inc"
54
55
56
57 INTEGER, INTENT(in) :: ITASK
58 INTEGER, DIMENSION(NPARI,NINTER), INTENT(in) :: IPARI
59 INTEGER, DIMENSION(*), INTENT(inout) :: IND_IMP
60 TYPE(INTBUF_STRUCT_),DIMENSION(NINTER) :: INTBUF_TAB
61 INTEGER, INTENT(in) :: NB_INTER_SORTED
62 INTEGER, DIMENSION(NB_INTER_SORTED), INTENT(in) :: LIST_INTER_SORTED
63 TYPE(inter_struct_type), DIMENSION(NINTER), INTENT(inout) :: INTER_STRUCT
64
65
66
67 INTEGER :: NIN
68 INTEGER :: INACTI,IFQ,NSN,NSNROLD,INACIMP
69 INTEGER :: I,N,K,NN,NI,ITIED
70 INTEGER :: I_STOK,CAND_T,CAND_TF
71 INTEGER :: NUM_IMP
72 INTEGER :: KK
73
74
75 num_imp = 0
76 DO kk=1,nb_inter_sorted
77 nin = list_inter_sorted(kk)
78 inacti = ipari(22,nin)
79 ifq = ipari(31,nin)
80 itied = ipari(85,nin)
81
82 inter_struct(nin)%INACTI=inacti
83 inter_struct(nin)%INACTII = inacti
84
85 nsn =ipari(5,nin)
86 IF( inacti==5.OR.inacti==6.OR.inacti==7.OR.ifq>0.OR.
87 . num_imp>0.OR.itied/=0 )THEN
88 nsnrold = ipari(24,nin)
89 ELSE
90 nsnrold = 0
91 ENDIF
92
93 IF( inacti==5.OR.inacti==6.OR.inacti==7.OR.ifq>0.OR.
94 . num_imp>0.OR.itied/=0)THEN
95 inter_struct(nin)%INACTII=inacti
96 IF (num_imp>0.AND.(inacti/=5.AND.inacti/=6.AND.ifq<=0)) THEN
97 inacimp = 0
98 ELSE
99 inacimp = 1
100 ENDIF
101
102 inter_struct(nin)%I_SK_OLD = intbuf_tab(nin)%I_STOK(1)
103
104 IF( inter_struct(nin)%SIZE_CAND_A<nsn+nsnrold+3) THEN
105 IF(ALLOCATED(inter_struct(nin)%CAND_A)) DEALLOCATE(inter_struct(nin)%CAND_A
106 ALLOCATE(inter_struct(nin)%CAND_A(nsn+nsnrold+3) )
107 inter_struct(nin)%SIZE_CAND_A=nsn+nsnrold+3
108 ENDIF
109
110
111
112
113
114 i_stok = intbuf_tab(nin)%I_STOK(1)
116 1 nsn+nsnrold ,inter_struct(nin)%I_SK_OLD,intbuf_tab(nin)%CAND_N,intbuf_tab(nin)%CAND_E,
117 2 intbuf_tab(nin)%CAND_P,intbuf_tab(nin)%FTSAVX,intbuf_tab(nin)%FTSAVY,intbuf_tab(nin)%FTSAVZ
118 3 inter_struct(nin)%CAND_A,intbuf_tab(nin)%IFPEN ,inacti,ifq,
119 4 num_imp ,ind_imp ,intbuf_tab(nin)%STFNS ,nin ,
120 5 nsn ,itied,intbuf_tab(nin)%CAND_F)
121
122 IF(inter_struct(nin)%I_SK_OLD==0) THEN
123 inter_struct(nin)%INACTI=-abs(inacti)
124 ENDIF
125 intbuf_tab(nin)%I_STOK(1)=inter_struct(nin)%I_SK_OLD
126 ELSE
127 inter_struct(nin)%I_SK_OLD=0
128 intbuf_tab(nin)%I_STOK(1)=0
129 IF(.NOT.ALLOCATED(inter_struct(nin)%CAND_A)) THEN
130 ALLOCATE(inter_struct(nin)%CAND_A(0) )
131 inter_struct(nin)%SIZE_CAND_A=0
132 ENDIF
133 ENDIF
134 ENDDO
135
136 RETURN
subroutine i7trc(nsn, i_stok, cand_n, cand_e, cand_p, cand_fx, cand_fy, cand_fz, cand_a, ifpen, inacti, ifq, num_imp, ind_imp, stfns, nin, nsnl, itied, cand_f)