47
48
49
50 use output_mod
51 USE intbufdef_mod
52 USE int8_mod
54 USE sensor_mod
55
56
57
58#include "implicit_f.inc"
59#include "comlock.inc"
60
61
62
63#include "com01_c.inc"
64#include "com04_c.inc"
65#include "com08_c.inc"
66#include "param_c.inc"
67#include "parit_c.inc"
68#include "impl1_c.inc"
69
70
71
72 type(output_), intent(inout) :: output
73 INTEGER ,INTENT(IN) :: NSENSOR
74 INTEGER NELTST,ITYPTST
75 INTEGER NUM_IMP(*),NS_IMP(*),NE_IMP(*),NT_IMP
76 INTEGER IPARI(NPARI,*), ICODT(*),ITAB(*),
77 . NPC(*), ISKY(*),
78 . ICONTACT(*),TAGNCONT(NLOADP_HYD_INTER,NUMNOD),
79 . KLOADPINTER(NINTER+1),LOADPINTER(NINTER*NLOADP_HYD),
80 . LOADP_HYD_INTER(NLOADP_HYD)
81
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(*),pskids(*)
87
88 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
89 TYPE(H3D_DATABASE) :: H3D_DATA
90 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
91
92
93
94
95 INTEGER N, IAD, ISENS,I
97 INTEGER NSLV,SIZ,NBT8
98 my_real,
DIMENSION(:,:),
ALLOCATABLE :: ftsav_buf
99 INTEGER :: NTY
100
101
102 nbt8 = 0
103
104
105 IF (impl_s==1) iad = 1
106
107 DO 200 n=1,ninter
108 nty =ipari(7,n)
109
110
111
112
113 IF(nty==8) THEN
114 nbt8 = nbt8 + 1
115 IF(ipari(16,n)==ncycle)THEN
116 ELSE
117 ipari(16,n) = ncycle
118
119 isens = 0
120
121 IF (isens > 0) THEN
122 ts = sensor_tab(isens)%TSTART
123 ELSE
124 ts = tt
125 ENDIF
126
127 IF(n2d==0)THEN
128 IF(impl_s/=1)THEN
129 IF(tt>=ts) THEN
131 1 ipari(1,n) ,x,a ,
132 2 icodt ,fsav(1,n) ,v ,ms ,
133 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
134 4 icontact ,rcontact,
135 5 stifn ,itab,intbuf_tab(n),intbuf_tab(n)%T8,h3d_data,
136 6 n ,pskids ,tagncont,kloadpinter,loadpinter,
137 7 loadp_hyd_inter)
138 ENDIF
139 ELSE
140 num_imp(n) =0
141 IF(tt>=ts) THEN
143 1 ipari(1,n) ,x ,a ,
144 2 icodt ,fsav(1,n) ,v ,ms ,
145 3 fskyi ,isky ,fcont ,fncont ,ftcont ,
146 4 icontact ,rcontact,
147 5 stifn ,itab,intbuf_tab(n),intbuf_tab(n)%T8,h3d_data,
148 6 n ,pskids ,tagncont,kloadpinter,loadpinter,
149 7 loadp_hyd_inter)
150 ENDIF
151 iad=iad+num_imp(n)
152 END IF
153 ELSE
154
155 ENDIF
156 ENDIF
157 ENDIF
158 200 CONTINUE
159
160
161 IF(nspmd > 1) THEN
162 nbt8 = 0
163 DO n=1,ninter
164 nty =ipari(7,n)
165
166 IF(nty==8) THEN
167 nbt8 = nbt8+1
168 startt=intbuf_tab(n)%VARIABLES(3)
169 stopt=intbuf_tab(n)%VARIABLES(11)
170 IF(startt<=tt .AND. tt<= stopt) THEN
171 IF(ipari(48,n) == 2) THEN
172 nslv = ipari(5,n)
173 ALLOCATE(ftsav_buf(3,nslv))
174 ftsav_buf(1:3,1:nslv) = 0
175 DO i = 1, nslv
176 ftsav_buf(1,i) = intbuf_tab(n)%FTSAVX(i)
177 ftsav_buf(2,i) = intbuf_tab(n)%FTSAVY(i)
178 ftsav_buf(3,i) = intbuf_tab(n)%FTSAVZ(i)
179 ENDDO
180 siz = 3*nslv
182 DO i = 1, nslv
183 intbuf_tab(n)%FTSAVX(i) = ftsav_buf(1,i)
184 intbuf_tab(n)%FTSAVY(i) = ftsav_buf(2,i)
185 intbuf_tab(n)%FTSAVZ(i) = ftsav_buf(3,i)
186 ENDDO
187 DEALLOCATE(ftsav_buf)
188 ENDIF
189 ENDIF
190 ENDIF
191 ENDDO
192 ENDIF
193
194 IF (impl_s==1) nt_imp=iad-1
195
196
197
198 RETURN
subroutine intvo8(output, ipari, x, a, icodt, fsav, v, ms, fskyi, isky, fcont, fncont, ftcont, icontact, rcontact, stifn, itab, intbuf_tab, t8, h3d_data, nin, pskids, tagncont, kloadpinter, loadpinter, loadp_hyd_inter)