109
110
111
114 USE elbufdef_mod
115 USE intbufdef_mod
119
120
121
122#include "implicit_f.inc"
123
124
125
126#include "units_c.inc"
127#include "param_c.inc"
128#include "scr15_c.inc"
129#include "scr17_c.inc"
130#include "com01_c.inc"
131#include "com04_c.inc"
132
133
134
135 INTEGER IPARI(NPARI,*), IXS(*),
136 . IXC(*), ITAB(*), MWA(*), IXTG(*), IKINE(*),
137 . IPARG(NPARG,*),
138 . KNOD2ELS(*), KNOD2ELC(*), KNOD2ELTG(*),
139 . NOD2ELS(*), NOD2ELC(*), NOD2ELTG(*),
140 . NPBY(NNPBY,*), LPBY(*), IPARTS(*), IPARTC(*), IPARTG(*)
141 TYPE(INTSTAMP_DATA), TARGET :: INTSTAMP(*)
142 TYPE(INTSTAMP_DATA),POINTER :: pINTSTAMP
144 . x(3,*), pm(*), geo(*), rwa(6,*),
145 . ms(*), in(*), v(3,*), vr(3,*), rby(nrby,*), skew(lskew,*),
146 . thk_part(*)
147 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_INTER
148 TYPE(ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
149 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
150 TYPE(SCRATCH_STRUCT_) INSCR(*)
151
152
153
154
155
156 INTEGER N, JINSCR, NINTI, IWRN, I, I_MEM,
157 . RESORT
158 INTEGER NTY, STAT, ISTAMP, MULTIMP,LEN_FILNAM
160 . DIMENSION(:),ALLOCATABLE:: thksh4_var,thksh3_var,thknod
161 CHARACTER*2148 FILNAM
162 INTEGER ID
163 CHARACTER(LEN=NCHARTITLE) :: TITR
164
165 i_mem = 0
166 resort = 0
167
168 ALLOCATE (thksh4_var(numelc) ,stat=stat)
169 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
170 . msgtype=msgerror,
171 . c1='THKSH4_VAR')
172 ALLOCATE (thksh3_var(numeltg) ,stat=stat)
173 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
174 . msgtype=msgerror,
175 . c1='THKSH3_VAR')
176 ALLOCATE (thknod(numnod) ,stat=stat)
177 IF (stat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
178 . msgtype=msgerror,
179 . c1='THKNOD')
180 thksh4_var=zero
181 thksh3_var=zero
182 thknod =zero
183
184 CALL thickvar(elbuf_tab,iparg,thksh4_var,thksh3_var,thknod,
185 . ixc ,ixtg )
186
187 iwrn = 0
188 istamp=0
189 DO 100 n=1,ninter
190 resort = 0
191 nty=ipari(7,n)
192 IF (nty /= 21 .AND. nty /=23) GOTO 100
193
194 IF(nty==21) istamp=istamp+1
195
196 200 CONTINUE
197
198
199 IF (i_mem == 2)THEN
200 multimp =
max(ipari(23,n)+8,nint(ipari(23,n)*1.5))
202 i_mem = 0
203 ENDIF
204
205
206
207 jinscr=ipari(10,n)
208 ninti=n
209 id=nom_opt(1,ptr_nopt_inter+ninti)
211 . nom_opt(lnopt1-ltitr+1,ptr_nopt_inter+ninti),ltitr)
212
213 IF(istamp > 0)THEN
214 pintstamp => intstamp(istamp)
215 ELSE
216 NULLIFY(pintstamp)
217 ENDIF
218
220 1 intbuf_tab(n),inscr(ninti)%WA ,x ,ixs ,
221 2 ixc ,ixtg ,pm ,geo ,ipari(1,n),
222 3 ninti ,itab ,mwa ,rwa ,iwrn ,
223 4 ikine ,knod2els ,knod2elc ,knod2eltg ,nod2els ,
224 5 nod2elc ,nod2eltg ,
225 6 thksh4_var,thksh3_var ,thknod ,pintstamp ,skew ,
226 7 ms ,in ,v ,vr ,rby ,
227 8 npby ,lpby ,i_mem ,resort ,iparts ,
228 9 ipartc ,ipartg ,thk_part ,
id ,titr,
229 a nom_opt)
230 IF (i_mem /= 0) GOTO 200
231 100 CONTINUE
232
233 IF(iwrn/=0) THEN
236 OPEN(unit=iou2,file=filnam(1:len_filnam),status='UNKNOWN',
237 . form='FORMATTED')
238 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
239 . '---5---|---6---|---7---|---8---|'
240 WRITE(iou2,'(A)')'# NEW NODES COORDINATES'
241 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
242 . '---5---|---6---|---7---|---8---|'
243 WRITE(iou2,'(I10,1P3G20.13)')
244 . (itab(i),x(1,i),x(2,i),x(3,i),i=1,numnod)
245 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
246 . '---5---|---6---|---7---|---8---|'
247 WRITE(iou2,'(A)')'# END OF NEW NODES COORDINATES'
248 WRITE(iou2,'(2A)')'#--1---|---2---|---3---|---4---|',
249 . '---5---|---6---|---7---|---8---|'
250 CLOSE(unit=iou2)
251 ENDIF
252
253 DEALLOCATE (thksh4_var,thksh3_var)
254
255 RETURN
subroutine inint3_thkvar(intbuf_tab, inscr, x, ixs, ixc, ixtg, pm, geo, ipari, numint, itab, mwa, rwa, iwrn, ikine, knod2els, knod2elc, knod2eltg, nod2els, nod2elc, nod2eltg, thksh4_var, thksh3_var, thknod, intstamp, skew, ms, in, v, vr, rby, npby, lpby, i_mem, resort, iparts, ipartc, ipartg, thk_part, id, titr, nom_opt)
subroutine thickvar(elbuf_tab, iparg, thksh4_var, thksh3_var, thknod, ixc, ixtg)
character(len=outfile_char_len) outfile_name
integer, parameter nchartitle
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
subroutine upgrade_multimp(ni, multimp_parameter, intbuf_tab)