OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i20mainf.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| i20mainf ../engine/source/interfaces/int20/i20mainf.F
25!||--- called by ------------------------------------------------------
26!|| intfop2 ../engine/source/interfaces/interf/intfop2.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../engine/source/output/message/message.F
29!|| arret ../engine/source/system/arret.F
30!|| i11cdcor3 ../engine/source/interfaces/int11/i11cdcor3.F
31!|| i20cor3 ../engine/source/interfaces/int20/i20cor3.F
32!|| i20cor3e ../engine/source/interfaces/int20/i20cor3.F
33!|| i20dst3 ../engine/source/interfaces/int20/i20dst3.F
34!|| i20dst3e ../engine/source/interfaces/int20/i20cor3.F
35!|| i20for3 ../engine/source/interfaces/int20/i20for3.F
36!|| i20for3c ../engine/source/interfaces/int20/i20for3.f
37!|| i20for3e ../engine/source/interfaces/int20/i20for3.F
38!|| i20norm ../engine/source/interfaces/int20/i20curv.F
39!|| i20normcnt ../engine/source/interfaces/int20/i20curv.F
40!|| i20norme ../engine/source/interfaces/int20/i20rcurv.F
41!|| i20normn ../engine/source/interfaces/int20/i20rcurv.F
42!|| i20normnp ../engine/source/interfaces/int20/i20rcurv.F
43!|| i20normp ../engine/source/interfaces/int20/i20curv.F
44!|| i20norms ../engine/source/interfaces/int20/i20curv.F
45!|| i20rcurv ../engine/source/interfaces/int20/i20rcurv.F
46!|| i7cdcor3 ../engine/source/interfaces/int07/i7cdcor3.F
47!|| i7therm ../engine/source/interfaces/int07/i7therm.f
48!|| my_barrier ../engine/source/system/machine.F
49!|| spmd_exch_n ../engine/source/mpi/generic/spmd_exch_n.F
50!|| spmd_i20curvsz ../engine/source/mpi/interfaces/spmd_i20curvsz.F
51!|| spmd_i20exch_n ../engine/source/mpi/interfaces/spmd_i20exch_n.F
52!|| spmd_i20normf ../engine/source/mpi/interfaces/spmd_i20normf.F
53!|| startime ../engine/source/system/timer_mod.F90
54!|| stoptime ../engine/source/system/timer_mod.F90
55!|| sum_6_float_sens ../engine/source/system/parit.F
56!||--- uses -----------------------------------------------------
57!|| h3d_mod ../engine/share/modules/h3d_mod.F
58!|| intbufdef_mod ../common_source/modules/interfaces/intbufdef_mod.f90
59!|| message_mod ../engine/share/message_module/message_mod.F
60!|| timer_mod ../engine/source/system/timer_mod.F90
61!||====================================================================
62 SUBROUTINE i20mainf(TIMERS,
63 1 IPARI ,X ,A ,
64 2 ICODT ,FSAV ,V ,MS ,DT2T ,
65 3 NELTST ,ITYPTST ,ITAB ,STIFN ,FSKYI ,
66 4 ISKY ,FCONT ,NIN ,LINDMAX ,KINET ,
67 5 JTASK ,NB_JLT ,NB_JLT_NEW,NB_STOK_N ,
68 6 NISKYFI ,NEWFRONT ,NSTRF ,SECFCUM ,ICONTACT ,
69 7 VISCN ,NUM_IMP ,
70 9 NS_IMP ,NE_IMP ,IND_IMP ,FSAVSUB ,NRTMDIM ,
71 A FSAVBAG ,
72 B EMINX ,IXS ,IXS16 ,IXS20 ,FNCONT ,
73 C FTCONT ,IAD_ELEM ,FR_ELEM ,RCONTACT ,ACONTACT ,
74 D PCONTACT ,TEMP ,FTHE ,FTHESKYI ,
75 E PM ,IPARG ,IAD17 ,WEIGHT ,NISKYFIE ,
76 F IRLEN20 ,ISLEN20 ,IRLEN20T ,ISLEN20T ,IRLEN20E ,
77 G ISLEN20E ,MSKYI_SMS ,ISKYI_SMS ,NODNX_SMS ,NPC ,
78 H TF ,INTBUF_TAB,FBSAV6 ,ISENSINT ,DIMFB ,
79 I H3D_DATA ,theaccfact)
80C=======================================================================
81C-----------------------------------------------
82C M o d u l e s
83C-----------------------------------------------
84 USE timer_mod
85 USE intbufdef_mod
86 USE h3d_mod
87 USE message_mod
88C-----------------------------------------------
89C I m p l i c i t T y p e s
90C-----------------------------------------------
91#include "implicit_f.inc"
92C-----------------------------------------------
93C G l o b a l P a r a m e t e r s
94C-----------------------------------------------
95#include "mvsiz_p.inc"
96C-----------------------------------------------
97C C o m m o n B l o c k s
98C-----------------------------------------------
99#include "com01_c.inc"
100#include "com04_c.inc"
101#include "com08_c.inc"
102#include "param_c.inc"
103#include "warn_c.inc"
104#include "task_c.inc"
105#include "parit_c.inc"
106#include "timeri_c.inc"
107C-----------------------------------------------
108C D u m m y A r g u m e n t s
109C-----------------------------------------------
110 INTEGER NELTST,ITYPTST,NIN,NEWFRONT,NSTRF(*),
111 . NRTMDIM, IAD17, IRLEN20, ISLEN20, IRLEN20T, ISLEN20T,
112 . IRLEN20E, ISLEN20E, DIMFB
113 INTEGER IPARI(NPARI), ICODT(*),ICONTACT(*),
114 . ITAB(*), ISKY(*), KINET(*),
115 . WEIGHT(*),IPARG(NPARG,*)
116 INTEGER NB_JLT,NB_JLT_NEW,NB_STOK_N,JTASK,
117 . NISKYFI, LINDMAX, NISKYFIE
118 INTEGER NUM_IMP,NS_IMP(*),NE_IMP(*),IND_IMP(*)
119 INTEGER IXS(*) ,IXS16(*) ,IXS20(*)
120 INTEGER IAD_ELEM(2,*),FR_ELEM(*),
121 . ISKYI_SMS(*), NODNX_SMS(*),NPC(*), ISENSINT(*)
122 my_real, intent(in) :: theaccfact
123 my_real :: EMINX(*)
124 my_real DT2T,
125 . X(*), A(3,*), FSAV(*), V(3,*),FSAVBAG(*),
126 . MS(*),STIFN(*),FSKYI(LSKYI,4),FCONT(3,*),
127 . secfcum(7,numnod,nsect),viscn(*), fsavsub(*),
128 . fncont(3,*), ftcont(3,*), rcontact(*), acontact(*),
129 . pcontact(*),
130 . temp(*),fthe(*),ftheskyi(lskyi),pm(npropm,*),
131 . mskyi_sms(*),tf(*)
132
133 DOUBLE PRECISION FBSAV6(12,6,DIMFB)
134 TYPE(TIMER_) :: TIMERS
135 TYPE(intbuf_struct_) INTBUF_TAB
136 TYPE(h3d_database) :: H3D_DATA
137C=======================================================================
138C ALLOCATABLE
139C=======================================================================
140C-----------------------------------------------
141C L o c a l V a r i a b l e s
142C-----------------------------------------------
143 INTEGER I, I_STOK, JLT_NEW, JLT , NFT, IVIS2,
144 . IBC, NOINT, NSEG, ISECIN, IBAG, IADM,
145 . IGAP, INACTI, IFQ, MFROT, IGSTI, NISUB,
146 . NB_LOC, I_STOK_LOC,DEBUT,JD42B,
147 . ILAGM, LENR, LENT, MAXCC,INTTH,IFORM,JD22B,JD22C,
148 . NLN, NRTMFT, NRTMLT, NMNFT, NMNLT, NRADM,
149 . NLNFT1, NLNLT, NLNL, IFUNCTK, SFSAVPARIT, J, H, IERROR
150 INTEGER IX1(MVSIZ), IX2(MVSIZ), IX3(MVSIZ), IX4(MVSIZ),
151 . nsvg(mvsiz), cn_loc(mvsiz),ce_loc(mvsiz),
152 . cand_n_n(mvsiz),cand_e_n(mvsiz),kini(mvsiz),
153 . index2(lindmax),
154 . isdsiz(nspmd+1),ircsiz(nspmd+1),itag(numnod),
155 . ieleci(mvsiz)
156C REAL
157 my_real
158 . startt, fric, gap, stopt,
159 . visc,viscf,stiglo,gapmin,
160 . kmin, kmax, gapmax,rstif,fheat,tint,rhoh,frad,drad,
161 . xthe,fheatm,fheats
162C-----------------------------------------------
163C REAL
164 my_real
165 . nx1(mvsiz), nx2(mvsiz), nx3(mvsiz), nx4(mvsiz),
166 . ny1(mvsiz), ny2(mvsiz), ny3(mvsiz), ny4(mvsiz),
167 . nz1(mvsiz), nz2(mvsiz), nz3(mvsiz), nz4(mvsiz),
168 . lb1(mvsiz), lb2(mvsiz), lb3(mvsiz), lb4(mvsiz),
169 . lc1(mvsiz), lc2(mvsiz), lc3(mvsiz), lc4(mvsiz),
170 . p1(mvsiz), p2(mvsiz), p3(mvsiz), p4(mvsiz),
171 . x1(mvsiz), x2(mvsiz), x3(mvsiz), x4(mvsiz),
172 . y1(mvsiz), y2(mvsiz), y3(mvsiz), y4(mvsiz),
173 . z1(mvsiz), z2(mvsiz), z3(mvsiz), z4(mvsiz),
174 . xi(mvsiz), yi(mvsiz), zi(mvsiz), stif(mvsiz),
175 . pene(mvsiz),
176 . h1(mvsiz), h2(mvsiz), h3(mvsiz), h4(mvsiz),
177 . gapv(mvsiz),vxi(mvsiz),vyi(mvsiz),vzi(mvsiz),msi(mvsiz),
178 . gapr(mvsiz),tempi(mvsiz),phi(mvsiz),areasi(mvsiz)
179 my_real
180 . nx(mvsiz),ny(mvsiz),nz(mvsiz),
181 . hs1(mvsiz), hs2(mvsiz), hm1(mvsiz), hm2(mvsiz),
182 . xxs1(mvsiz), xxs2(mvsiz), xys1(mvsiz), xys2(mvsiz),
183 . xzs1(mvsiz), xzs2(mvsiz), xxm1(mvsiz), xxm2(mvsiz),
184 . xym1(mvsiz), xym2(mvsiz), xzm1(mvsiz), xzm2(mvsiz),
185 . vxs1(mvsiz), vxs2(mvsiz), vys1(mvsiz), vys2(mvsiz),
186 . vzs1(mvsiz), vzs2(mvsiz), vxm1(mvsiz), vxm2(mvsiz),
187 . vym1(mvsiz), vym2(mvsiz), vzm1(mvsiz), vzm2(mvsiz),
188 . ms1(mvsiz), ms2(mvsiz), mm1(mvsiz), mm2(mvsiz)
189 my_real
190 . surf(3,nrtmdim), pres(nrtmdim)
191 my_real
192 . rcurvi(mvsiz), anglmi(mvsiz), anglt, padm
193 my_real
194 . nnx1(mvsiz), nnx2(mvsiz), nnx3(mvsiz), nnx4(mvsiz),
195 . nny1(mvsiz), nny2(mvsiz), nny3(mvsiz), nny4(mvsiz),
196 . nnz1(mvsiz), nnz2(mvsiz), nnz3(mvsiz), nnz4(mvsiz),
197 . cmaj(mvsiz), penrad(mvsiz),condint(mvsiz),fni(mvsiz),
198 . phi1(mvsiz),phi2(mvsiz),phi3(mvsiz),phi4(mvsiz),efrict(mvsiz)
199 INTEGER N1(MVSIZ), N2(MVSIZ), M1(MVSIZ), M2(MVSIZ),
200 . NL1(MVSIZ), NL2(MVSIZ),ML1(MVSIZ), ML2(MVSIZ),
201 . CS_LOC(MVSIZ), CM_LOC(MVSIZ), NSMS(MVSIZ)
202 INTEGER ICURV,IMPL_S0
203 my_real, DIMENSION(:,:,:), ALLOCATABLE :: FSAVPARIT
204 INTEGER NSN, NTY, NLINSA
205C
206 nsn =ipari(5)
207 nty =ipari(7)
208 ibc =ipari(11)
209 ivis2 =ipari(14)
210 IF(ipari(33) == 1) RETURN
211 noint =ipari(15)
212 igap =ipari(21)
213 inacti=ipari(22)
214 isecin=ipari(28)
215 mfrot =ipari(30)
216 ifq =ipari(31)
217 ibag =ipari(32)
218 igsti=ipari(34)
219 nln =ipari(35)
220 nisub =ipari(36)
221 icurv =ipari(39)
222C adaptive meshing
223 iadm =ipari(44)
224
225 nradm=ipari(49)
226 padm =intbuf_tab%VARIABLES(24)
227 anglt=intbuf_tab%VARIABLES(25)
228C heat interface
229 intth = ipari(47)
230 iform = ipari(48)
231C
232 stiglo=-intbuf_tab%STFAC(1)
233 startt=intbuf_tab%VARIABLES(3)
234 stopt =intbuf_tab%VARIABLES(11)
235 IF(startt > tt) RETURN
236 IF(tt > stopt) RETURN
237C
238 fric =intbuf_tab%VARIABLES(1)
239 gap =intbuf_tab%VARIABLES(2)
240 gapmin=intbuf_tab%VARIABLES(13)
241 visc =intbuf_tab%VARIABLES(14)
242 viscf =intbuf_tab%VARIABLES(15)
243C
244 gapmax=intbuf_tab%VARIABLES(16)
245 kmin =intbuf_tab%VARIABLES(17)
246 kmax =intbuf_tab%VARIABLES(18)
247C
248 rstif = intbuf_tab%VARIABLES(20)
249 fheat = intbuf_tab%VARIABLES(21)
250 tint = intbuf_tab%VARIABLES(22)
251 frad = zero
252 drad = zero
253C----deactive implicit part
254 impl_s0 =0
255 IF (impl_s0 == 1) THEN
256 num_imp = 0
257 visc =zero
258 viscf =zero
259 ENDIF
260 ifunctk = 0
261 xthe = zero
262 fheatm = zero
263 fheats = zero
264C----------------------------------------------------------------------
265C NOEUDS/SURFACE
266C----------------------------------------------------------------------
267
268c----------------------------------------------------
269c Calcul des normales nodales
270c Courbure quadratique ou Igap/=0 pour solides (GAP=0)
271c----------------------------------------------------
272
273 IF(igap/=0)THEN
274 CALL my_barrier
275 IF(jtask==1)THEN
276 ALLOCATE(intbuf_tab%SOLIDN_NORMAL (3,numnod))
277 CALL i20norms(ipari(4),intbuf_tab%IRECTM,numnod,x,intbuf_tab%SOLIDN_NORMAL,
278 2 ipari(6),intbuf_tab%MSR,nln,intbuf_tab%NLG,intbuf_tab%GAP_SH,
279 3 iad_elem,fr_elem,intbuf_tab%NSV,nsn)
280
281 IF(nspmd > 1)THEN
282 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
283 CALL spmd_i20exch_n(intbuf_tab%SOLIDN_NORMAL,iad_elem,fr_elem,lenr)
284C Communication supplementaire normale sur proc remote en SPMD
285C allocation partie non edge sur taille NSNR (nb noeuds secnd remote)
286 ALLOCATE(intbuf_tab%SOLIDN_NORMAL_F (3,ipari(24)))
287C allocation partie edge sur taille NLINR (nb lignes secnd remote)
288 ALLOCATE(intbuf_tab%SOLIDN_NORMAL_FE(3,2*ipari(57)))
289 CALL spmd_i20normf(
290 1 intbuf_tab%SOLIDN_NORMAL,intbuf_tab%SOLIDN_NORMAL_F,intbuf_tab%SOLIDN_NORMAL_FE,nin ,irlen20 ,
291 2 islen20 ,irlen20t ,islen20t ,irlen20e,islen20e,
292 3 intbuf_tab%NSV,intbuf_tab%NLG ,intbuf_tab%IXLINS )
293 END IF
294C il s agit de la barriere matchant celle de i20norm sur tache1
295 END IF
296 CALL my_barrier()
297 ENDIF
298c----------------------------------------------------
299c Calcul des normales nodales
300c Courbure quadratique ou Igap/=0 pour solides (GAP=0)
301c----------------------------------------------------
302 IF(icurv==3)THEN
303 CALL my_barrier()
304 IF(jtask==1)THEN
305 ALLOCATE(intbuf_tab%NODNORM_NORMAL (3,numnod))
306 IF(iparit==0)THEN
307 CALL i20norm(ipari(4),intbuf_tab%IRECTM,numnod,x,intbuf_tab%NODNORM_NORMAL,
308 . ipari(6),intbuf_tab%MSR,nln,intbuf_tab%NLG)
309cc CALL MY_BARRIER()
310 IF(nspmd>1)THEN
311 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
312 CALL spmd_exch_n(intbuf_tab%NODNORM_NORMAL,iad_elem,fr_elem,lenr)
313 END IF
314 ELSE
315C Traitement d'assemblage parith/on spmd a optimiser si besoin
316 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
317 IF(nspmd > 1)THEN
318 CALL spmd_i20curvsz(
319 1 ipari(4),intbuf_tab%IRECTM,numnod,iad_elem,fr_elem,
320 2 isdsiz ,ircsiz ,itag ,lenr ,lent ,
321 3 maxcc ,nln ,intbuf_tab%NLG)
322 ELSE
323 CALL i20normcnt(
324 1 ipari(4),intbuf_tab%IRECTM,numnod ,itag ,lent ,
325 2 maxcc ,nln ,intbuf_tab%NLG)
326 ENDIF
327 CALL i20normp(
328 1 ipari(4),intbuf_tab%IRECTM,numnod ,x ,intbuf_tab%NODNORM_NORMAL,
329 2 ipari(6),intbuf_tab%MSR,lent ,maxcc,isdsiz ,
330 3 ircsiz ,iad_elem ,fr_elem,itag ,nln,intbuf_tab%NLG)
331 END IF
332cc ELSE
333cc CALL MY_BARRIER()
334C il s agit de la barriere matchant celle de i20norm sur tache1
335 END IF
336 CALL my_barrier()
337 ENDIF
338c----------------------------------------------------
339c Rayon de courbure : calcul des normales nodales (normees)
340C IADM!=0 + Icurv!=0 non available (starter error).
341c----------------------------------------------------
342 IF(iadm/=0)THEN
343 CALL my_barrier()
344 IF(jtask==1)THEN
345 ALLOCATE(intbuf_tab%MODRCURV(nrtmdim),intbuf_tab%MODANGLM(nrtmdim))
346 ALLOCATE(intbuf_tab%NODNORM_NORMAL (3,numnod))
347
348 IF(iparit==0)THEN
349 CALL i20normn(
350 . ipari(4),intbuf_tab%IRECTM,numnod,x ,intbuf_tab%NODNORM_NORMAL,
351 . ipari(6),intbuf_tab%MSR,nln,intbuf_tab%NLG)
352cc CALL MY_BARRIER()
353 IF(nspmd>1)THEN
354 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
355 CALL spmd_exch_n(intbuf_tab%NODNORM_NORMAL,iad_elem,fr_elem,lenr)
356 END IF
357 ELSE
358C Traitement d'assemblage parith/on spmd a optimiser si besoin
359 lenr = iad_elem(1,nspmd+1)-iad_elem(1,1)
360 IF(nspmd > 1)THEN
361 CALL spmd_i20curvsz(
362 1 ipari(4),intbuf_tab%IRECTM,numnod,iad_elem,fr_elem,
363 2 isdsiz ,ircsiz ,itag ,lenr ,lent ,
364 3 maxcc ,nln ,intbuf_tab%NLG)
365 ELSE
366 CALL i20normcnt(
367 1 ipari(4),intbuf_tab%IRECTM,numnod ,itag ,lent ,
368 2 maxcc ,nln ,intbuf_tab%NLG)
369
370 ENDIF
371 CALL i20normnp(
372 1 ipari(4),intbuf_tab%IRECTM,numnod ,x ,intbuf_tab%NODNORM_NORMAL,
373 2 ipari(6),intbuf_tab%MSR,lent ,maxcc,isdsiz ,
374 3 ircsiz ,iad_elem ,fr_elem,itag ,nln,intbuf_tab%NLG)
375
376 END IF
377cc ELSE
378cc CALL MY_BARRIER()
379C il s agit de la barriere matchant celle de I7NORMN sur tache1
380 END IF
381 CALL my_barrier()
382
383 nmnft=1+(jtask-1)*ipari(6)/nthread
384 nmnlt=jtask*ipari(6)/nthread
385
386 CALL i20norme(
387 . nmnft,nmnlt,intbuf_tab%NODNORM_NORMAL,intbuf_tab%MSR,nln,intbuf_tab%NLG)
388 CALL my_barrier()
389
390 nrtmft=1+(jtask-1)*ipari(4)/nthread
391 nrtmlt=jtask*ipari(4)/nthread
392 CALL i20rcurv(nrtmft, nrtmlt ,x ,intbuf_tab%NODNORM_NORMAL ,intbuf_tab%IRECTM ,
393 . intbuf_tab%MODRCURV , nradm ,intbuf_tab%MODANGLM ,anglt,nln,intbuf_tab%NLG )
394 CALL my_barrier()
395 END IF
396C----------------------------------------------------
397C
398 i_stok = intbuf_tab%I_STOK(1)
399C decoupage statique
400 nb_loc = i_stok / nthread
401 IF (jtask==nthread) THEN
402 i_stok_loc = i_stok-nb_loc*(nthread-1)
403 ELSE
404 i_stok_loc = nb_loc
405 ENDIF
406 debut = (jtask-1)*nb_loc
407
408 i_stok = 0
409C
410C
411C recalcul du istok
412C
413 DO i = debut+1, debut+i_stok_loc
414 IF(intbuf_tab%CAND_N(i) < 0) THEN
415 i_stok = i_stok + 1
416 index2(i_stok) = i
417C inbuf == cand_n
418 intbuf_tab%CAND_N(i) = -intbuf_tab%CAND_N(i)
419 ENDIF
420 ENDDO
421c------------------------------------------------
422 IF (debug(3)>=1) THEN
423 nb_jlt = nb_jlt + i_stok_loc
424 nb_stok_n = nb_stok_n + i_stok
425 ENDIF
426c------------------------------------------------
427C
428 sfsavparit = 0
429 DO i=1,nisub+1
430 IF(isensint(i)/=0) THEN
431 sfsavparit = sfsavparit + 1
432 ENDIF
433 ENDDO
434 IF (sfsavparit /= 0) THEN
435 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
436 IF(ierror/=0) THEN
437 CALL ancmsg(msgid=19,anmode=aninfo,
438 . c1='(/INTER/TYPE20)')
439 CALL arret(2)
440 ENDIF
441 DO j=1,i_stok
442 DO i=1,11
443 DO h=1,nisub+1
444 fsavparit(h,i,j) = zero
445 ENDDO
446 ENDDO
447 ENDDO
448 ELSE
449 ALLOCATE(fsavparit(0,0,0),stat=ierror)
450 IF(ierror/=0) THEN
451 CALL ancmsg(msgid=19,anmode=aninfo,
452 . c1='(/INTER/TYPE20)')
453 CALL arret(2)
454 ENDIF
455 ENDIF
456c
457 DO nft = 0 , i_stok - 1 , nvsiz
458c------------------------------------------------
459 jlt = min( nvsiz, i_stok - nft )
460C preparation candidats retenus
461 CALL i7cdcor3(
462 1 jlt,index2(nft+1),intbuf_tab%CAND_E,intbuf_tab%CAND_N,
463 2 cand_e_n,cand_n_n)
464C cand_n et cand_e remplace par cand_n_n et cand_e_n
465 CALL i20cor3(
466 1 jlt ,intbuf_tab%XA,intbuf_tab%IRECTM,intbuf_tab%NSV,cand_e_n,
467 2 cand_n_n ,intbuf_tab%STFM,intbuf_tab%STFA,x1 ,x2 ,
468 3 x3 ,x4 ,y1 ,y2 ,y3 ,
469 4 y4 ,z1 ,z2 ,z3 ,z4 ,
470 5 xi ,yi ,zi ,stif ,ix1 ,
471 6 ix2 ,ix3 ,ix4 ,nsvg ,igap ,
472 7 gap ,intbuf_tab%GAP_S,intbuf_tab%GAP_M,gapv ,gapr ,
473 8 ms ,vxi ,vyi ,nln ,intbuf_tab%NLG,
474 9 vzi ,msi ,nsn ,intbuf_tab%VA,kinet ,
475 a kini ,nty ,nin ,igsti ,kmin ,
476 b kmax ,gapmax ,gapmin ,iadm ,intbuf_tab%MODRCURV ,
477 c rcurvi ,intbuf_tab%MODANGLM ,anglmi ,intth ,temp ,
478 d tempi ,phi ,intbuf_tab%AREAS,intbuf_tab%IELEC,areasi ,
479 e ieleci ,intbuf_tab%GAP_SH,intbuf_tab%STFAC,nodnx_sms,nsms )
480C
481 jlt_new = 0
482C
483 CALL i20dst3(
484 1 jlt ,cand_n_n ,cand_e_n ,cn_loc ,ce_loc ,
485 2 x1 ,x2 ,x3 ,x4 ,y1 ,
486 3 y2 ,y3 ,y4 ,z1 ,z2 ,
487 4 z3 ,z4 ,xi ,yi ,zi ,
488 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
489 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
490 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
491 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
492 9 p1 ,p2 ,p3 ,p4 ,ix1 ,
493 a ix2 ,ix3 ,ix4 ,nsvg ,stif ,
494 b jlt_new ,gapv ,inacti ,intbuf_tab%SOLIDN_NORMAL,
495 c index2(nft+1),vxi ,vyi ,gapr ,intbuf_tab%GAP_SH,
496 d vzi ,msi ,kini ,icurv ,intbuf_tab%IRECTM,
497 e nnx1 ,nnx2 ,nnx3 ,nnx4 ,nny1 ,
498 f nny2 ,nny3 ,nny4 ,nnz1 ,nnz2 ,
499 g nnz3 ,nnz4 ,intbuf_tab%NODNORM_NORMAL ,iadm ,rcurvi ,
500 h anglmi ,intth ,tempi ,phi ,areasi ,
501 i ieleci ,nln ,intbuf_tab%NLG,igap ,gapmax ,
502 j intbuf_tab%SOLIDN_NORMAL_F ,nsms ,intbuf_tab%NBINFLG,intbuf_tab%GAP_M,
503 k cmaj)
504 jlt = jlt_new
505 IF (imonm > 0 .AND. jtask == 1) CALL startime(timers,20)
506 IF(jlt_new/=0) THEN
507 ipari(29) = 1
508 IF (debug(3)>=1)nb_jlt_new = nb_jlt_new + jlt_new
509C
510 IF( intth > 0 ) THEN
511 CALL i7therm(jlt ,iparg ,pm ,ixs ,iform ,x ,
512 1 xi ,yi ,zi ,x1 ,y1 ,z1 ,
513 2 x2 ,y2 ,z2 ,x3 ,y3 ,z3 ,
514 3 x4 ,y4 ,z4 ,ix1 ,ix2 ,ix3 ,
515 4 ix4 ,rstif ,tempi, intbuf_tab%IELEC,
516 5 phi ,tint ,areasi, ieleci,frad,drad ,
517 6 gapv ,fni ,ifunctk,xthe,npc ,tf ,
518 7 condint,phi1,phi2 ,phi3 ,phi4 ,fheats,
519 7 fheatm,efrict,temp ,h1 ,h2 ,h3 ,
520 8 h4,theaccfact)
521 ENDIF
522C
523 CALL i20for3(
524 1 jlt ,a ,intbuf_tab%VA,ibc ,icodt ,
525 2 fsav ,gap ,fric ,ms ,visc ,
526 3 viscf ,noint ,intbuf_tab%STFA,itab ,cn_loc ,
527 4 stiglo ,stifn ,stif ,fskyi ,isky ,
528 5 nx1 ,nx2 ,nx3 ,nx4 ,ny1 ,
529 6 ny2 ,ny3 ,ny4 ,nz1 ,nz2 ,
530 7 nz3 ,nz4 ,lb1 ,lb2 ,lb3 ,
531 8 lb4 ,lc1 ,lc2 ,lc3 ,lc4 ,
532 9 p1 ,p2 ,p3 ,p4 ,fcont ,
533 b ix1 ,ix2 ,ix3 ,ix4 ,nsvg ,
534 c ivis2 ,neltst ,ityptst ,dt2t ,
535 d gapv ,inacti ,index2(nft+1),niskyfi ,
536 e kinet ,newfront ,isecin ,nstrf ,secfcum ,
537 f x ,intbuf_tab%XA,ce_loc ,mfrot ,ifq ,
538 g intbuf_tab%FRIC_P,intbuf_tab%CAND_FX,intbuf_tab%CAND_FY,intbuf_tab%CAND_FZ,
539 + intbuf_tab%XFILTR,
540 h intbuf_tab%IFPEN,gapr,intbuf_tab%AVX_ANCR ,nln ,intbuf_tab%NLG,
541 i ibag ,icontact ,intbuf_tab%NSV,intbuf_tab%PENIS,
542 + intbuf_tab%PENIM,
543 j viscn ,vxi ,vyi ,vzi ,msi ,
544 k kini ,nin ,nisub ,intbuf_tab%LISUB,intbuf_tab%ADDSUBS,
545 l intbuf_tab%ADDSUBM,intbuf_tab%LISUBS,intbuf_tab%LISUBM,fsavsub,intbuf_tab%CAND_N,
546 m ipari(33) ,ipari(39) ,intbuf_tab%NODNORM_NORMAL ,fncont ,ftcont ,
547 n x1 ,x2 ,x3 ,x4 ,y1 ,
548 o y2 ,y3 ,y4 ,z1 ,z2 ,
549 p z3 ,z4 ,xi ,yi ,zi ,
550 q iadm ,rcurvi ,rcontact ,acontact ,pcontact ,
551 r anglmi ,padm ,intth , phi , fthe ,
552 s ftheskyi ,intbuf_tab%DAANC6,temp ,tempi ,rstif ,
553 t iform ,intbuf_tab%GAP_S,igap ,intbuf_tab%ALPHAK,mskyi_sms,
554 u iskyi_sms ,nsms ,cmaj ,jtask ,isensint ,
555 v fsavparit ,nft ,h3d_data )
556C
557 ENDIF
558 IF (imonm > 0 .AND. jtask == 1) CALL stoptime(timers,20)
559
560C
561 IF(impl_s0 == 1) THEN
562 DO i = 1 ,jlt_new
563 ns_imp(i+num_imp)=cn_loc(i)
564 ne_imp(i+num_imp)=ce_loc(i)
565 ind_imp(i+num_imp)=index2(i+nft)
566 ENDDO
567 num_imp=num_imp+jlt_new
568 ENDIF
569C
570 ENDDO
571c
572 IF (sfsavparit /= 0)THEN
573 CALL sum_6_float_sens(fsavparit, nisub+1, 11, i_stok,1,i_stok,
574 . fbsav6, 12, 6, dimfb, isensint )
575 ENDIF
576 IF(ALLOCATED(fsavparit)) DEALLOCATE (fsavparit)
577C----------------------------------------------------------------------
578C 2- EDGES
579C----------------------------------------------------------------------
580 nlinsa =ipari(53)
581 IF(nlinsa /= 0)THEN
582 i_stok = intbuf_tab%I_STOK_E(1)
583C cette partie est effectuee en // apres le calcul des forces des elem.
584C decoupage statique
585 nb_loc = i_stok / nthread
586 IF (jtask==nthread) THEN
587 i_stok_loc = i_stok-nb_loc*(nthread-1)
588 ELSE
589 i_stok_loc = nb_loc
590 ENDIF
591 debut = (jtask-1)*nb_loc
592 i_stok = 0
593C recalcul du istok
594 DO i = debut+1, debut+i_stok_loc
595 IF(intbuf_tab%LCAND_S(i) < 0) THEN
596 i_stok = i_stok + 1
597 index2(i_stok) = i
598C inbuf == cand_S
599 intbuf_tab%LCAND_S(i) = -intbuf_tab%LCAND_S(i)
600 ENDIF
601 ENDDO
602 IF (debug(3)>=1) THEN
603 nb_jlt = nb_jlt + i_stok_loc
604 nb_stok_n = nb_stok_n + i_stok
605 ENDIF
606C
607 sfsavparit = 0
608 DO i=1,nisub+1
609 IF(isensint(i)/=0) THEN
610 sfsavparit = sfsavparit + 1
611 ENDIF
612 ENDDO
613 IF (sfsavparit /= 0) THEN
614 ALLOCATE(fsavparit(nisub+1,11,i_stok),stat=ierror)
615 IF(ierror/=0) THEN
616 CALL ancmsg(msgid=19,anmode=aninfo,
617 . c1='(/INTER/TYPE20)')
618 CALL arret(2)
619 ENDIF
620 DO j=1,i_stok
621 DO i=1,11
622 DO h=1,nisub+1
623 fsavparit(h,i,j) = zero
624 ENDDO
625 ENDDO
626 ENDDO
627 ELSE
628 ALLOCATE(fsavparit(0,0,0),stat=ierror)
629 IF(ierror/=0) THEN
630 CALL ancmsg(msgid=19,anmode=aninfo,
631 . c1='(/INTER/TYPE20)')
632 CALL arret(2)
633 ENDIF
634 ENDIF
635C
636 DO nft = 0 , i_stok - 1 , nvsiz
637 jlt = min( nvsiz, i_stok - nft )
638C preparation candidats retenus
639 CALL i11cdcor3(
640 1 jlt,index2(nft+1),intbuf_tab%LCAND_N,intbuf_tab%LCAND_S,cm_loc,
641 2 cs_loc)
642 CALL i20cor3e(
643 1 jlt ,intbuf_tab%IXLINS,intbuf_tab%IXLINM,intbuf_tab%XA,intbuf_tab%VA,
644 2 cs_loc ,cm_loc ,intbuf_tab%STFS,intbuf_tab%STF,gapmin ,
645 3 intbuf_tab%GAP_SE,intbuf_tab%GAP_ME,igap ,gapv ,ms ,
646 4 stif ,xxs1 ,xxs2 ,xys1 ,xys2 ,
647 5 xzs1 ,xzs2 ,xxm1 ,xxm2 ,xym1 ,
648 6 xym2 ,xzm1 ,xzm2 ,vxs1 ,vxs2 ,
649 7 vys1 ,vys2 ,vzs1 ,vzs2 ,vxm1 ,
650 8 vxm2 ,vym1 ,vym2 ,vzm1 ,vzm2 ,
651 9 ms1 ,ms2 ,mm1 ,mm2 ,n1 ,
652 a n2 ,m1 ,m2 ,nlinsa ,nin ,
653 b nl1 ,nl2 ,ml1 ,ml2 ,intbuf_tab%NLG,
654 c intbuf_tab%STFAC,nodnx_sms ,nsms )
655
656 CALL i20dst3e(
657 1 jlt ,cs_loc,cm_loc ,hs1 ,hs2 ,
658 2 hm1 ,hm2 ,nx ,ny ,nz ,
659 3 stif ,n1 ,n2 ,m1 ,m2 ,
660 4 jlt_new,xxs1 ,xxs2 ,xys1 ,xys2 ,
661 5 xzs1 ,xzs2 ,xxm1 ,xxm2 ,xym1 ,
662 6 xym2 ,xzm1 ,xzm2 ,vxs1 ,vxs2 ,
663 7 vys1 ,vys2 ,vzs1 ,vzs2 ,vxm1 ,
664 8 vxm2 ,vym1 ,vym2 ,vzm1 ,vzm2 ,
665 9 ms1 ,ms2 ,mm1 ,mm2 ,gapv ,
666 a nl1 ,nl2 ,ml1 ,ml2 ,igap ,
667 b intbuf_tab%SOLIDN_NORMAL,intbuf_tab%GAP_SE,intbuf_tab%GAP_ME,nlinsa,
668 c intbuf_tab%SOLIDN_NORMAL_FE,nsms)
669 jlt = jlt_new
670 IF (imonm > 0 .AND. jtask == 1) CALL startime(timers,20)
671 IF(jlt_new/=0) THEN
672 ipari(29) = 1
673 IF (debug(3)>=1)
674 . nb_jlt_new = nb_jlt_new + jlt_new
675 CALL i20for3e(
676 1 jlt ,a ,v ,ibc ,icodt ,
677 2 fsav ,gap ,fric ,ms ,visc ,
678 3 viscf ,noint ,itab ,cs_loc ,cm_loc ,
679 4 stiglo ,stifn ,stif ,fskyi ,isky ,
680 5 fcont ,intbuf_tab%STFS,intbuf_tab%STF,dt2t ,hs1 ,
681 6 hs2 ,hm1 ,hm2 ,n1 ,n2 ,
682 7 m1 ,m2 ,ivis2 ,neltst ,ityptst ,
683 8 nx ,ny ,nz ,gapv ,intbuf_tab%PENISE,
684 9 intbuf_tab%PENIME,ipari(22) ,niskyfie ,newfront ,isecin ,
685 a nstrf ,secfcum ,viscn ,nlinsa ,ms1 ,
686 b ms2 ,mm1 ,mm2 ,vxs1 ,vys1 ,
687 c vzs1 ,vxs2 ,vys2 ,vzs2 ,vxm1 ,
688 d vym1 ,vzm1 ,vxm2 ,vym2 ,vzm2 ,
689 e nin ,nl1 ,nl2 ,ml1 ,ml2 ,
690 f intbuf_tab%DAANC6,intbuf_tab%ALPHAK,mskyi_sms ,iskyi_sms ,nsms,
691 g jtask ,isensint ,fsavparit ,nisub ,nft ,
692 h h3d_data )
693
694 ENDIF
695 IF (imonm > 0 .AND. jtask == 1) CALL stoptime(timers,20)
696 IF(impl_s0==1) THEN
697 DO i = 1 ,jlt_new
698 ns_imp(i+num_imp)=cs_loc(i)
699 ne_imp(i+num_imp)=cm_loc(i)
700 ENDDO
701 num_imp=num_imp+jlt_new
702 ENDIF
703 ENDDO
704 IF (sfsavparit /= 0)THEN
705 CALL sum_6_float_sens(fsavparit, nisub+1, 11, i_stok,1,i_stok,
706 . fbsav6, 12, 6, dimfb, isensint )
707 ENDIF
708 IF(ALLOCATED(fsavparit)) DEALLOCATE (fsavparit)
709 ENDIF
710
711C----------------------------------------------------------------------
712C 3- FORCES entre NOEUD SECOND. et NOEUD D'ANCRAGE
713C----------------------------------------------------------------------
714 CALL my_barrier
715C----------------------------------------------------------------------
716C NOEUDS secnd,main,edge
717C----------------------------------------------------------------------
718 IF (imonm > 0 .AND. jtask == 1) CALL startime(timers,20)
719 nlnft1= (jtask-1)*nln/nthread
720 nlnlt = jtask*nln/nthread
721 nlnl = nlnlt - nlnft1
722 CALL i20for3c(
723 1 nlnl ,intbuf_tab%NLG(1+nlnft1),ms ,intbuf_tab%AVX_ANCR(1+3*nlnft1),
724 2 intbuf_tab%AVX_ANCR(1+3*nln+3*nlnft1),intbuf_tab%STFA(1+nlnft1),weight,inacti,
725 3 intbuf_tab%DAANC6(1+18*2*nlnft1),intbuf_tab%STFAC(1),
726 3 intbuf_tab%PENIA(1+5*nlnft1),intbuf_tab%ALPHAK(1+3*nlnft1),
727 4 intbuf_tab%AVX_ANCR(1+6*nln+3*nlnft1),kmin)
728
729 IF (imonm > 0 .AND. jtask == 1) CALL stoptime(timers,20)
730 IF(igap/=0)THEN
731 CALL my_barrier
732 IF(jtask == 1) THEN
733 DEALLOCATE(intbuf_tab%SOLIDN_NORMAL)
734 IF(nspmd > 1) THEN
735 DEALLOCATE(intbuf_tab%SOLIDN_NORMAL_F)
736 DEALLOCATE(intbuf_tab%SOLIDN_NORMAL_FE)
737 END IF
738 END IF
739 END IF
740 IF(icurv==3.OR.iadm/=0)THEN
741 CALL my_barrier()
742 IF(jtask == 1)DEALLOCATE(intbuf_tab%NODNORM_NORMAL)
743 END IF
744 IF(iadm/=0)THEN
745 CALL my_barrier()
746 IF(jtask == 1)DEALLOCATE(intbuf_tab%MODRCURV,intbuf_tab%MODANGLM)
747 END IF
748C-----------
749 RETURN
750 END
subroutine i11cdcor3(jlt, index, cand_m, cand_s, cand_m_n, cand_s_n)
Definition i11cdcor3.F:32
subroutine i20cor3(jlt, xa, irect, nsv, cand_e, cand_n, stf, stfa, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, stif, ix1, ix2, ix3, ix4, nsvg, igap, gap, gap_s, gap_m, gapv, gapr, ms, vxi, vyi, nln, nlg, vzi, msi, nsn, va, kinet, kini, ity, nin, igsti, kmin, kmax, gapmax, gapmin, iadm, rcurv, rcurvi, anglm, anglmi, intth, temp, tempi, phi, areas, ielec, areasi, ieleci, gap_sh, stfac, nodnx_sms, nsms)
Definition i20cor3.F:45
subroutine i20cor3e(jlt, ixlins, ixlinm, xa, va, cand_s, cand_m, stfs, stfm, gapmin, gap_s, gap_m, igap, gapv, ms, stif, xxs1, xxs2, xys1, xys2, xzs1, xzs2, xxm1, xxm2, xym1, xym2, xzm1, xzm2, vxs1, vxs2, vys1, vys2, vzs1, vzs2, vxm1, vxm2, vym1, vym2, vzm1, vzm2, ms1, ms2, mm1, mm2, n1, n2, m1, m2, nrts, nin, nl1, nl2, ml1, ml2, nlg, stfac, nodnx_sms, nsms)
Definition i20cor3.F:360
subroutine i20normp(nrtm, irect, numnod, x, nod_normal, nmn, msr, lent, maxcc, isdsiz, ircsiz, iad_elem, fr_elem, itag, nln, nlg)
Definition i20curv.F:475
subroutine i20norms(nrtm, irect, numnod, x, nod_normal, nmn, msr, nln, nlg, gap_sh, iad_elem, fr_elem, nsv, nsn)
Definition i20curv.F:31
subroutine i20normcnt(nrtm, irect, numnod, itag, lent, maxcc, nln, nlg)
Definition i20curv.F:769
subroutine i20for3e(jlt, a, v, ibc, icodt, fsav, gap, fric, ms, visc, viscf, noint, itab, cs_loc, cm_loc, stiglo, stifn, stif, fskyi, isky, fcont, stfs, stfm, dt2t, hs1, hs2, hm1, hm2, n1, n2, m1, m2, ivis2, neltst, ityptst, nx, ny, nz, gapv, penise, penime, inacti, niskyfie, newfront, isecin, nstrf, secfcum, viscn, nlinsa, ms1, ms2, mm1, mm2, vxs1, vys1, vzs1, vxs2, vys2, vzs2, vxm1, vym1, vzm1, vxm2, vym2, vzm2, nin, n1l, n2l, m1l, m2l, daanc6, alphak, mskyi_sms, iskyi_sms, nsms, jtask, isensint, fsavparit, nisub, nft, h3d_data)
Definition i20for3.F:2413
subroutine i20for3(jlt, a, va, ibcc, icodt, fsav, gap, fric, ms, visc, viscf, noint, stfa, itab, cn_loc, stiglo, stifn, stif, fskyi, isky, nx1, nx2, nx3, nx4, ny1, ny2, ny3, ny4, nz1, nz2, nz3, nz4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4, p1, p2, p3, p4, fcont, ix1l, ix2l, ix3l, ix4l, nsvg, ivis2, neltst, ityptst, dt2t, gapv, inacti, index, niskyfi, kinet, newfront, isecin, nstrf, secfcum, x, xa, ce_loc, mfrot, ifq, frot_p, cand_fx, cand_fy, cand_fz, alpha0, ifpen, gapr, dxanc, nln, nlg, ibag, icontact, nsv, penis, penim, viscn, vxi, vyi, vzi, msi, kini, nin, nisub, lisub, addsubs, addsubm, lisubs, lisubm, fsavsub, cand_n, ilagm, icurv, nod_normal, fncont, ftcont, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, iadm, rcurvi, rcontact, acontact, pcontact, anglmi, padm, intth, phi, fthe, ftheskyi, daanc6, temp, tempi, rstif, iform, gap_s, igap, alphak, mskyi_sms, iskyi_sms, nsms, cmaj, jtask, isensint, fsavparit, nft, h3d_data)
Definition i20for3.F:73
subroutine i20for3c(nln, nlg, ms, dxanc, dvanc, stfa, weight, inacti, daanc6, stfac, penia, alphak, daanc, kmin)
Definition i20for3.F:2269
subroutine i20mainf(timers, ipari, x, a, icodt, fsav, v, ms, dt2t, neltst, ityptst, itab, stifn, fskyi, isky, fcont, nin, lindmax, kinet, jtask, nb_jlt, nb_jlt_new, nb_stok_n, niskyfi, newfront, nstrf, secfcum, icontact, viscn, num_imp, ns_imp, ne_imp, ind_imp, fsavsub, nrtmdim, fsavbag, eminx, ixs, ixs16, ixs20, fncont, ftcont, iad_elem, fr_elem, rcontact, acontact, pcontact, temp, fthe, ftheskyi, pm, iparg, iad17, weight, niskyfie, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, mskyi_sms, iskyi_sms, nodnx_sms, npc, tf, intbuf_tab, fbsav6, isensint, dimfb, h3d_data, theaccfact)
Definition i20mainf.F:80
subroutine i20norme(nmnft, nmnlt, nod_normal, msr, nln, nlg)
Definition i20rcurv.F:244
subroutine i20rcurv(nrtmft, nrtmlt, x, nod_normal, irect, rcurv, nradm, anglm, anglt, nln, nlg)
Definition i20rcurv.F:290
subroutine i20normnp(nrtm, irect, numnod, x, nod_normal, nmn, msr, lent, maxcc, isdsiz, ircsiz, iad_elem, fr_elem, itag, nln, nlg)
Definition i20rcurv.F:116
subroutine i20normn(nrtm, irect, numnod, x, nod_normal, nmn, msr, nln, nlg)
Definition i20rcurv.F:30
subroutine i7cdcor3(jlt, index, cand_e, cand_n, cand_e_n, cand_n_n)
Definition i7cdcor3.F:38
subroutine i7therm(jlt, iparg, pm, ixs, iform, x, xi, yi, zi, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, ix1, ix2, ix3, ix4, rstif, tempi, ieles, phi, tint, areas, ieleci, frad, drad, gapv, fni, ifunctk, xthe, npc, tf, condint, phi1, phi2, phi3, phi4, fheats, fheatm, efrict, temp, h1, h2, h3, h4, theaccfact)
Definition i7therm.F:42
#define min(a, b)
Definition macros.h:20
subroutine sum_6_float_sens(f, a, b, c, jft, jlt, f6, d, e, g, isensint)
Definition parit.F:540
subroutine spmd_exch_n(xnorm, iad_elem, fr_elem, lenr)
Definition spmd_exch_n.F:37
subroutine spmd_i20curvsz(nrtm, irect, numnod, iad_elem, fr_elem, isdsiz, ircsiz, itag, lenr, lent, maxcc, nln, nlg)
subroutine spmd_i20exch_n(xnorm, iad_elem, fr_elem, lenr)
subroutine spmd_i20normf(solidn_normal, solidn_normal_f, solidn_normal_fe, nin, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, nsv, nlg, islins)
subroutine i20dst3(igap, gap_sh, cand_e, cand_n, gapv, gap, gap_s, gap_m, gapmax, gapmin, irect, nln, nlg, solidn_normal, nsv, nbinflg, tag, ix3, ix4, x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, xi, yi, zi, x0, y0, z0, nx1, ny1, nz1, nx2, ny2, nz2, nx3, ny3, nz3, nx4, ny4, nz4, p1, p2, p3, p4, lb1, lb2, lb3, lb4, lc1, lc2, lc3, lc4)
Definition i20dst3.F:47
subroutine i20dst3e(jlt, gap, cand_s, cand_m, irects, irectm, nx, ny, nz, n1, n2, m1, m2, jlt_new, x, igap, gap_s, gap_m, gapv2, nln, nlg, solidn_normal)
Definition i20dst3.F:996
subroutine i20norm(nrtm, irect, numnod, x, solidn_normal, nmn, msr, nln, nlg, gap_sh)
Definition i20dst3.F:846
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)
Definition message.F:889
subroutine arret(nn)
Definition arret.F:87
subroutine my_barrier
Definition machine.F:31
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135