49
50
51
52 USE output_mod, ONLY : output_
53 USE intbufdef_mod
56 USE sensor_mod
57
58
59
60#include "implicit_f.inc"
61#include "comlock.inc"
62
63
64
65#include "com01_c.inc"
66#include "com04_c.inc"
67#include "com08_c.inc"
68#include "task_c.inc"
69#include "param_c.inc"
70#include "parit_c.inc"
71#include "impl1_c.inc"
72
73
74
75 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
76 INTEGER ,INTENT(IN) :: NSENSOR
77 INTEGER NELTST,
78 INTEGER NUM_IMP(*),NS_IMP(*),NE_IMP(*),NT_IMP
79 INTEGER IPARI(NPARI,*), ICODT(*),ITAB(*),
80 . NPC(*), ISKY(*),
81 . ICONTACT(*)
82
84 . x(*), a(*), fsav(nthvki,*) , wa(*), v(*),ms(*),
85 . stifn(*), tf(*),fskyi(lsky,nfskyi),vr(3,*),fcont(3,*),in(*),
86 . bufsf(*), fncont(3,*),ftcont(3,*),rcontact(*)
87
88 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
89 TYPE(H3D_DATABASE) :: H3D_DATA
90 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
91 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
92
93
94
95 INTEGER N, IAD,IDUM, ISENS, NTY
97
98 IF (impl_s==1) iad = 1
99
100 DO 200 n=1,ninter
101 nty =ipari(7,n)
102 IF(nty==14.OR.nty==15) i7kglo = 1
103 IF(ispmd/=0) GOTO 200
104 IF(nty==3.OR.nty==4.OR.nty==5
105 . .OR.nty==14.OR.nty==15)THEN
106#include "lockon.inc"
107 IF(ipari(16,n)==ncycle)THEN
108#include "lockoff.inc"
109 ELSE
110 ipari(16,n) = ncycle
111#include "lockoff.inc"
112
113 isens = 0
114 IF(nty == 5 ) isens = ipari(64,n)
115
116 IF (isens > 0) THEN
117 ts = sensor_tab(isens)%TSTART
118 ELSE
119 ts = tt
120 ENDIF
121
122 IF(n2d==0)THEN
123 IF (nty==14) THEN
124 CALL i14cmp(output,ipari(1,n),intbuf_tab(n),igrsurf ,bufsf ,
125 2 a ,x ,v ,wa ,fsav(1,n) ,
126 3 in ,stifn ,fcont ,ms ,fskyi ,
127 4 isky ,npc ,tf ,h3d_data)
128 ELSEIF (nty==15) THEN
129 CALL i15cmp(output,ipari(1,n),intbuf_tab(n),
130 2 igrsurf,bufsf,a, x, v,
131 3 wa, fsav(1,n),in, stifn, fcont,
132 4 ms, fskyi,isky, npc, tf,
133 5 dt2t, neltst,ityptst, itab,h3d_data)
134 ELSE
135 IF(impl_s/=1)THEN
136 IF(tt>=ts) THEN
138 1 ipari(1,n) ,x,a ,
139 2 icodt ,fsav(1,n) ,wa ,v ,ms ,
140 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
141 4 icontact ,rcontact ,idum ,idum ,idum ,
142 5 stifn ,itab,intbuf_tab(n),h3d_data)
143 ENDIF
144 ELSE
145 num_imp(n) =0
146 IF(tt>=ts) THEN
148 1 ipari(1,n) ,x ,a ,
149 2 icodt ,fsav(1,n) ,wa ,v ,ms ,
150 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
151 4 icontact ,rcontact,num_imp(n),ns_imp(iad),ne_imp(iad),
152 5 stifn ,itab,intbuf_tab(n),h3d_data)
153 ENDIF
154 iad=iad+num_imp(n)
155 END IF
156 END IF
157 ELSE
158 IF(tt>=ts) THEN
160 1 ipari(1,n) ,intbuf_tab(n),x ,a ,
161 2 icodt ,fsav(1,n) ,fskyi ,isky ,
162 3 fcont ,fncont , ftcont ,h3d_data )
163 ENDIF
164 ENDIF
165 ENDIF
166 ELSEIF(nty==6)THEN
167#include "lockon.inc"
168 IF(ipari(16,n)==ncycle)THEN
169#include "lockoff.inc"
170 ELSE
171 ipari(16,n) = ncycle
172#include "lockoff.inc"
174 1 ipari(1,n),x ,a ,
175 2 icodt ,npc ,tf ,v ,fsav(1,n),
176 3 dt2t ,neltst ,ityptst ,fskyi ,isky ,
177 4 fcont ,ms ,intbuf_tab(n),h3d_data )
178 ENDIF
179 ELSEIF(nty==7.OR.nty==22)THEN
180 ELSEIF(nty==10)THEN
181 ELSEIF(nty==11)THEN
182 ENDIF
183 200 CONTINUE
184
185#include "lockon.inc"
186
187 IF (impl_s==1) nt_imp=iad-1
188#include "lockoff.inc"
189
190
191 RETURN
subroutine i14cmp(output, ipari, intbuf_tab, igrsurf, bufsf, a, x, v, wa, fsav, in, stifn, fcont, ms, fskyi, isky, npc, pld, h3d_data)
subroutine i15cmp(output, ipari, intbuf_tab, igrsurf, bufsf, a, x, v, wa, fsav, in, stifn, fcont, ms, fskyi, isky, npc, pld, dt2t, neltst, ityptst, itab, h3d_data)
subroutine i6main(ipari, x, a, icodt, npc, tf, v, fsav, dt2t, neltst, ityptst, fskyi, isky, fcont, ms, intbuf_tab, h3d_data)
subroutine intvo2(ipari, intbuf_tab, x, a, icodt, fsav, fskyi, isky, fcont, fncont, ftcont, h3d_data)
subroutine intvo3(ipari, x, a, icodt, fsav, mwa, v, ms, fskyi, isky, fcont, fncont, ftcont, icontact, rcontact, num_imp, ns_imp, ne_imp, stifn, itab, intbuf_tab, h3d_data)