105 2 ISENDTO ,IRCVFROM ,IAD_ELEM,FR_ELEM ,ITABM1 ,
106 3 IPARI ,IPARG ,ITAB ,IXS10 ,IXS20 ,
107 4 I13A ,I13B ,I13C ,I13D ,I13E ,
108 5 I13F ,I13G ,I13H ,I13I ,I15A ,
109 6 I15B ,I15C ,I15D ,I15E ,I15F ,
110 7 I15G ,I15H ,I15I ,I87A ,I87B ,
111 8 I87C ,I87D ,I87E ,I87F ,I87G ,
112 9 NFIA ,NFEA ,NFOA ,NDMA ,NDMA2 ,
113 A NODFT ,NODLT ,NDTASK ,NUMNTHREAD ,IXS16 ,
114 B IXS ,IXQ ,IXC ,IXT ,IXP ,
115 C IXR ,IXTG ,PON, IKINE ,
117 E X ,D ,MS ,IN ,STIFN ,
118 F STIFR ,DMAS ,DINER ,FANI ,ANIN ,
120 H PARTSAV ,PARTS0 ,MONVOL ,
121 I I87H ,I87I ,I87J ,I87K ,
123 K SECBUF ,SECFCUM ,NSTRF ,IGRNOD ,IEXLNK ,
125 M IXTG1 ,IB ,VISCN ,DD_R2R ,
126 O ELBUF ,IPART ,MADPRT ,MADSH4 ,
127 P MADSH3 ,MADSOL ,MADNOD ,MADFAIL ,IGEO ,
128 Q INTLIST ,NBINTC ,PROCNE ,NISKYFI ,WEIGHT ,
129 R ISIZXV ,ILENXV ,ADDCNI2 ,PROCNI2 ,IAD_I2M ,
130 S FR_I2M ,FR_NBCCI2,I2SIZE ,FR_MAD ,LWIBEM ,
131 T LWRBEM ,FXBFP ,FXBEFW ,FXBEDP ,FXBGRP ,
133 V ISLEN7 ,IRLEN7 ,ISLEN11 ,IRLEN11 ,
134 W LWIFLOW ,LWRFLOW ,IFLOW ,ADDCNEL ,CNEL ,
135 X ADDTMPL ,IPARTL ,NPARTL ,NFNCA ,NFTCA ,
136 Y I15ATH ,I35ATH ,IPM ,SH4TREE ,IPADMESH ,
137 Z MSC ,INC ,SH3TREE ,MSTG ,INTG ,
138 a PTG ,FTHE ,FTHESKY ,FTHESKYI ,NME17 ,
139 b ISLEN17 ,IRLEN17 ,IRLEN7T ,ISLEN7T ,LINDIDEL ,
140 c LBUFIDEL,SH4TRIM ,SH3TRIM ,MSCND ,INCND ,
141 d IRLEN20 ,ISLEN20 ,IRLEN20T,ISLEN20T ,NBINT20 ,
142 e IRLEN20E,ISLEN20E ,NISKYFIE,
143 f MCP ,MS0 ,INOD_PXFEM,IEL_PXFEM,IADC_PXFEM,
144 g ADSKY_PXFEM,ICODT,ICODR ,IBFV ,ADMSMS ,
145 h NODREAC ,IGROUC ,NGROUC ,IGROUNC ,NGROUNC ,
146 i FR_RBY ,FR_RBY6 ,NPBY ,
147 j NOM_SECT ,MCPC ,MCPTG ,GRTH ,IGRTH ,
148 k NELEM ,LAG_SEC ,NPRW ,DIAG_SMS ,DMELC ,
149 l DMELTG ,NGRTH ,NFT2 ,DMELS ,DMELTR ,
150 m DMELP ,DMELRT ,RES_SMS ,I87L ,IRBE2 ,
151 n LRBE2 ,NMRBE2 ,IAD_RBE2 ,FR_RBE2 ,FR_RBE2M ,
152 o R2SIZE ,LPBY ,PROCNE_PXFEM ,ISENDP_PXFEM,IRECVP_PXFEM,
153 p IADSDP_PXFEM,IADRCP_PXFEM,FR_NBCC1,RBY,INT18KINE ,
154 q XDP ,I87M,INOD_CRKXFEM,IEL_CRKXFEM ,IADC_CRKXFEM,
155 r ADSKY_CRKXFEM,PROCNE_CRKXFEM,ISENDP_CRKXFEM,IRECVP_CRKXFEM,
156 s IADSDP_CRKXFEM,IADRCP_CRKXFEM ,INT24USE,NDAMA2 ,
157 t IGROUPC ,IGROUPTG ,IGROUPS ,IGROUPFLG ,DMINT2 ,IRBKIN_L,
158 u NRBYKIN_L,KINDRBY ,ELBUF_TAB ,SENSORS ,DD_R2R_ELEM,
159 v SDD_R2R_ELEM ,KINET, WEIGHT_MD,DMSPH ,IOLDSECT,LBUFIDEL24,
160 w INTBUF_TAB ,NUMSPH_GLO_R2R, FLG_SPHINOUT_R2R,I15K,
161 y CONDN ,CONDNSKY ,KXFENOD2ELC ,ELCUTC ,NODEDGE,
162 z IAD_EDGE ,CRKNODIAD,FR_EDGE ,FR_NBEDGE ,NODLEVXF,
163 x CRKEDGE ,XFEM_TAB ,ISENSINT , NISUBMAX,
164 1 INTLIST25 ,INT24E2EUSE ,TABMP_L ,
165 2 I87N ,TAB_MAT,H3D_DATA,TAGTRIMC,TAGTRIMTG,
166 3 IGRBRIC ,IGRQUAD ,IGRSH4N ,IGRSH3N ,IGRTRUSS ,
167 4 IGRBEAM ,IGRSPRING,IGRPART ,FORNEQS ,INT7ITIED ,
168 5 FXVEL_FGEO,FAILWAVE,NLOC_DMG,PINCH_DATA,SLLOADP ,
169 6 TAGSLV_RBY,NFNCA2 ,NFTCA2 ,IN0 ,SORT_COMM,STACK,OUTPUT,
170 7 THKE ,SFR_ELEM ,SH_OFFSET_TAB,
171 8 NEED_COMM_INT25_SOLID_EROSION,COMM_INT25_SOLID_EROSION,
172 9 ISKWN ,IFRAME, LOADS ,GLOB_THERM,PBLAST,RBE3)
196 USE nloc_count_solnod_mod
197 USE inter_sh_offset_ini_mod ,
only : inter_sh_offset_ini
198 USE inter_sh_offset_mod ,
only:sh_offset_
200 USE inivel_init_mod ,
only: inivel_init
202 use spmd_xv_inter_type1_mod ,
only : is_present_inter1
203 USE parith_on_mod,
only: element_pon_
208#include "implicit_f.inc"
212#include "com01_c.inc"
213#include "com04_c.inc"
214#include "com08_c.inc"
215#include "com10_c.inc"
216#include "com_xfem1.inc"
217#include "param_c.inc"
218#include "scr02_c.inc"
219#include "scr03_c.inc"
220#include "scr07_c.inc"
221#include "scr12_c.inc"
222#include "scr14_c.inc"
223#include "scr16_c.inc"
224#include "scr17_c.inc"
225#include
"scr23_c.inc"
226#include "units_c.inc"
227#include "cong2_c.inc"
229#include "parit_c.inc"
230#include "timerc_c.inc"
231#include "rad2r_c.inc"
232#include "scr18_c.inc"
235#include "flowcom.inc"
236#include "remesh_c.inc"
238#include "lagmult.inc"
240#include "intstamp_c.inc"
244 TYPE(element_pon_) :: PON
245 INTEGER ITASK, NBINTC, NODFT, NODLT, , LBUFIDEL,
246 . numnthread, ndtask, nfia, nfea, nfoa ,ndma, nfnca, nftca,
247 . ndma2,ndin,n1,n2,n3,igtyp,npartl,ngrouc,ngrounc,
248 . i13a,i13b,i13c,i13d,i13e,i13f,i13g,i13h,i13i,
249 . i15a,i15b,i15c,i15d,i15e,i15f,i15g,i15h,i15i,i15j,i15k,
250 . i87a,i87b,i87c,i87d,i87e,i87f,i87g,i87h,i87i,i87j,
251 . i87k,i87l,i87m,i87n,nfnca2,nftca2,
252 . isizxv , ilenxv, i2size, islen7,irlen7 ,islen11 ,irlen11,
253 . i15ath, i35ath, nme17,islen17,irlen17,irlen7t,islen7t,
254 . irlen20,islen20,irlen20t,islen20t,nbint20,irlen20e,
255 . islen20e,nelem,lag_sec, ngrth, nft2,nmrbe2,
256 . int18kine,int24use,ndama2, nrbykin_l,ioldsect,lbufidel24,
257 . tabmp_l,tagtrimc(*),tagtrimtg(*), slloadp,sfr_elem
259 . ixs(nixs,*),ixs10(6,*) ,ixs20(12,*),
260 . ixs16(6,*) , igeo(npropgi,*),
261 . ixq(nixq,*),ixc(nixc,*), ixt(nixt,*), ixp(nixp,*),
262 . ixr(nixr,*), ixtg(nixtg,*), ixtg1(4,*),
263 . itab(*), iparg(nparg,*), ipari(npari,*),
265 . weight(*), nstrf(*), ib(nibcld,*), itabm1(*),
266 . monvol(*),kxx(nixx,*),isendto(ninter+1,nspmd+1),
267 . fr_nbcc(2,nspmd+1), iad_elem(2,nspmd+1) ,fr_elem(*),
268 . ircvfrom(ninter+1,nspmd+1), intlist(ninter), procne(*),
269 . niskyfi(*),addcni2(*),procni2(*),iad_i2m(*),fr_i2m(*),
270 . fr_nbcci2(*), ipart(*),
271 . dd_r2r(nspmd+1,*),ipartl(*),
272 . madprt(*), madsh4(*), madsh3(*), madsol(*), madnod(*),
273 . madfail(*), fr_mad(5,*), lwibem, lwrbem, lwiflow, lwrflow,
274 . iflow(*), addcnel(0:*), cnel(0:*), addtmpl(0:*),
275 . ipm(npropmi,*), sh4tree(*), ipadmesh(*), sh3tree(*),
276 . sh4trim(*), sh3trim(*), niskyfie(*),
277 . icodt(*), icodr(*),ibfv(nifv,*),
278 . inod_pxfem(*),iel_pxfem(*) ,iadc_pxfem(4,*),elcutc(2,*),
279 . adsky_pxfem(*), kxfenod2elc(*),nodlevxf(*),crknodiad(*),
280 . nodedge(*),iad_edge(*),fr_edge(*),fr_nbedge(*), nodreac(*),
281 . igrouc(*),igrounc(*),fr_rby(*),fr_rby6(*),npby(*),
282 . nom_sect(*), grth(*),igrth(*), nprw(*),iad_rbe2(*),
283 . fr_rbe2(*),fr_rbe2m(*),r2size, irbe2(nrbe2l,*),lrbe2(*),
284 . ikine(numnod),lpby(*), procne_pxfem(*),
285 . isendp_pxfem(*),irecvp_pxfem(*),iadsdp_pxfem(*),
286 . iadrcp_pxfem(*),fr_nbcc1(2,*),inod_crkxfem(*),
287 . iel_crkxfem(*),iadc_crkxfem(*),adsky_crkxfem(0:*),
288 . procne_crkxfem(*),isendp_crkxfem(*),irecvp_crkxfem(*),
289 . iadsdp_crkxfem(*),iadrcp_crkxfem(*),
290 . igroupc(*),igrouptg(*),igroups(*),igroupflg(2),
291 . irbkin_l(*), kindrby(*), dd_r2r_elem(*),sdd_r2r_elem,
292 . kinet(*),weight_md(*),numsph_glo_r2r,flg_sphinout_r2r,
293 . isensint(nisubmax+1,ninter),nisubmax,
294 . intlist25(ninter25) ,int24e2euse ,fxvel_fgeo,
296 INTEGER,
INTENT(IN ),
DIMENSION(LISKN,NUMFRAM+1) ::
297 INTEGER,
INTENT(IN ),
DIMENSION(LISKN,NUMSKW+1) :: ISKWN
299! in order to force the of a list of candidate nodes
302 INTEGER,
INTENT(INOUT) :: INT7ITIED
304 . X(3,*), D(3,*), V(3,*), VR(3,*),
305 . MS(*), IN(*), WA(*), A(3,*), AR(3,*),
306 . FANI(3,*), UWA(*), STIFN(*), STIFR(*),
307 . ANIN(*), PARTSAV(NPSAV,*),PARTS0(*),
309 . PM(NPROPM,*) , GEO(NPROPG,*),
311 . SECBUF(*),SECFCUM(7,NUMNOD,NSECT),XFRAME(NXFRAME,*),
312 . ELBUF(*), MSC(*), (*), MSTG(*), INTG(*), PTG(*),
313 . mscnd(*), incnd(*), fthe(*), fthesky(*),ftheskyi(*), mcp(*),
314 . ms0(*), admsms(*), mcpc(*), mcptg(*), diag_sms(*),
315 . dmelc(*), dmeltg(*), dmels(*), dmeltr(*), dmelp(*), dmelrt(*),
316 . res_sms(3,*),rby(nrby,*), dmint2(4,i2nsn25),
317 . dmsph(*),condn(*),condnsky ,tab_mat(ngroup),forneqs(3,*)
319 . fxbfp(*), fxbefw(*), fxbedp(*), fxbgrp(*), fxbgrw(*),in0(*)
321 . thke(numelc+numeltg)
327 LOGICAL,
INTENT(inout) :: NEED_COMM_INT25_SOLID_EROSION
328 INTEGER,
INTENT(inout) :: COMM_INT25_SOLID_EROSION
330 DOUBLE PRECISION XDP(3,*)
331 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
332 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
333 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP,NXEL) :: XFEM_TAB
334 TYPE (XFEM_EDGE_) ,
DIMENSION(*) :: CRKEDGE
335 TYPE(H3D_DATABASE) :: H3D_DATA
336 TYPE (PINCH) :: PINCH_DATA
337 TYPE (SENSORS_) :: SENSORS
339 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
340 TYPE (GROUP_) ,
DIMENSION(NGRQUAD) :: IGRQUAD
341 TYPE (GROUP_) ,
DIMENSION(NGRSHEL) ::
342 TYPE (GROUP_) ,
DIMENSION(NGRSH3N) :: IGRSH3N
343 TYPE (GROUP_) ,
DIMENSION(NGRTRUS) :: IGRTRUSS
344 TYPE () ,
DIMENSION(NGRBEAM) :: IGRBEAM
345 TYPE (GROUP_) ,
DIMENSION(NGRSPRI) :: IGRSPRING
346 TYPE (GROUP_) ,
DIMENSION(NGRPART) :: IGRPART
347 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
349 TYPE (FAILWAVE_STR_) ,
TARGET ::
350 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
351 TYPE(sorting_comm_type),
DIMENSION(NINTER),
INTENT(inout) :: SORT_COMM
352 TYPE (STACK_PLY) :: STACK
354 TYPE(OUTPUT_),
INTENT(INOUT) :: OUTPUT
355 TYPE(sh_offset_) :: SH_OFFSET_TAB
356 TYPE (LOADS_) ,
INTENT(INOUT) :: LOADS
357 type (glob_therm_) ,
intent(inout) ::
358 type (pblast_) ,
intent(inout) :: pblast
359 type (rbe3_) ,
intent(inout) :: rbe3
363 INTEGER IMUEL, I, J, K, NG, NINT7,NNOD,K2S,K0,IAD1,IDUM,LLL,
364 . LRBUF, LIBUF, ITY, IAD, NNBEM, ITYP,IROTG,NS,LF,LT,LL,L,
365 . l1,l2,isectr,nfr,ic,icr,nisub, ni25,nbr,nsensor,inloc
366 INTEGER JD(50),KD(50),JFI,KFI,NMN,II,NINOUT,NNO,NEL,IFLGADM,
367 . N,,KK, NFT, ISOLNOD,NBS
368 INTEGER,
DIMENSION(SENSORS%NSENSOR) :: INDEX_SENSOR
369 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISEND,IRECV
370 INTEGER :: ITIED,NINIVELTG
378 nsensor = sensors%NSENSOR
392 CALL init_kyne(ikine,npby,lpby,tagslv_rby)
397 IF (ireac == 1 )
CALL init_reac_nod(cptreac,nodreac,nthgrp,output%TH%ITHGRP,output%TH%ITHBUF)
402 IF (igrelem == 1 )
THEN
404 . ipart ,igrbric ,igrquad ,igrsh4n ,igrsh3n,
405 . igrtruss ,igrbeam ,igrspring)
408 IF (imassi /= 0)
THEN
409 ms(1:numnod)=ms0(1:numnod)
410 IF (iroddl /=0) in(1:numnod)=in0(1:numnod)
417 irotg=
max(irotg,rbe3%IRBE3(6,i))
431 icr=(ic-512*(ic/512))/64
433 IF (irbe2(11,i)==0) irotg =1
443 IF (ns==0) r2size = 0
444 nfr = iad_rbe2(nspmd+1)-iad_rbe2(1)
452 CALL rbe2_init(irbe2 ,lrbe2 ,nmrbe2 ,fr_rbe2 ,fr_rbe2m,nfr)
455 1 ipari ,isendto ,ircvfrom,intlist ,nbintc ,
456 2 isizxv ,ilenxv ,iad_elem,i2size ,itask ,
457 3 islen7 ,irlen7 ,islen11 ,irlen11 ,igrbric ,
458 4 nme17 ,islen17 ,irlen17 ,irlen7t ,islen7t ,
459 5 lindidel,lbufidel,irlen20 ,islen20 ,irlen20t,
460 6 islen20t,nbint20 ,irlen20e,islen20e,fr_rby ,
461 7 fr_rby6 ,npby ,irbkin_l,nrbykin_l,kindrby,
462 8 nsensor ,sensors%SENSOR_TAB,lbufidel24, intbuf_tab,
463 9 sort_comm,need_comm_int25_solid_erosion,comm_int25_solid_erosion )
465 IF(idel7ng>0.OR.irad2r>0.OR.
alemuscl_param%IALEMUSCL>0.OR.pdel>0)
THEN
467 2 ixs ,ixq ,ixc ,ixt ,ixp ,
468 3 ixr ,ixtg ,ixs10 ,ixs20 ,
469 4 ixs16 ,ixtg1 ,geo ,addcnel ,cnel ,
474 IF (irad2r /= 0)
THEN
475 CALL r2r_init(iexlnk ,itab,igrnod,x ,
476 2 ms ,in ,dd_r2r,weight ,iad_elem,
477 3 fr_elem,addcnel,cnel,ixc,iparg,icodt,icodr,
478 4 ibfv,d,rby,npby,xdp,stifn,stifr,dd_r2r_elem,
479 5 sdd_r2r_elem,weight_md,ilenxv,numsph_glo_r2r,
480 6 flg_sphinout_r2r,ipari,nloc_dmg)
483 nfia = numnod*
min(1,anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT)
484 nfea = nfia + numnod*
min(1,anim_v(5)+outp_v(5)+h3d_data%N_VECT_FINT)
485 nfnca= nfea + numnod*
min(1,anim_v(6)+outp_v(6)+h3d_data%N_VECT_FEXT)
486 nftca= nfnca+ numnod*
min(1,anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT)
487 nfoa = nftca+ numnod*
min(1,anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT)
488 nft2 = nfoa+ 2*(nsect+nrbody+nrwall)
489 nfnca2= nft2 + numnod*
min(1,anim_v(13)+h3d_data%N_VECT_CONT2)
490 nftca2= nfnca2+ numnod*
min(1,anim_v(27)+h3d_data%N_VECT_PCONT2)
491 ndma = numnod*
min(1,anim_n(1)+outp_n(1)+h3d_data%N_SCAL_DT)
492 ndin = ndma +numnod*
min(1,anim_n(2)+outp_n(2)+h3d_data%N_SCAL_DMAS)
493 ndma2 = ndin+numnod*
min(1,anim_n(12)+outp_n(3)+h3d_data%N_SCAL_DINER)
494 ndama2 = ndma2+numelr*(anim_fe(11)+anim_fe(12)+anim_fe(13))
501 i = intbuf_tab(ng)%MSR(ii)
502 intbuf_tab(ng)%NMAS(nmn+ii) = in(i)
504 IF (irad2r==1) in(i)=
max(em20,in(i))
512 IF(mcheck==0)ncycle=0
525 i15ath=1+lipart1*(npart+nthpart)
526 i15a=i15ath+2*9*(npart+nthpart)
537 i35ath=1+lisub1*nsubs
540 i87b = i87a + 8 * numels + 6 * numels10 + 12 * numels20 + 8 * numels16
541 i87c = i87b + 4 * numelq
542 i87d = i87c + 4 * numelc
543 i87e = i87d + 2 * numelt
544 i87f = i87e + 2 * numelp
545 i87g = i87f + 3 * numelr
546 i87h = i87g + 3 * numeltg
547 i87h = i87h + 3 * numeltg6
549 i87j = i87i + 4 * nskymv0
550 i87k = i87j + 4 * nconld
551 i87l = i87k + 4 * glob_therm%NUMCONV
552 i87m = i87l + 4 * glob_therm%NUMRADIA
553 i87n = i87m + slloadp
559 IF (kxx(3,i)>maxnx) maxnx=kxx(3,i)
563 partsav(8,i)=parts0(i)
567 CALL date_and_time(startdate, starttime, zone, values)
568 WRITE(istdo,
'(A,I2.2,A,I2.2,A,I4.4)')
' ',values(3),
'/',values(2),
'/',values(1)
569 WRITE(iout,
'(A,I2.2,A,I2.2,A,I4.4)')
' ',values(3),
'/',values(2),
'/',values(1)
577 IF(dtin/=0. .AND. mcheck==0)
THEN
581 dt2old=
min(dt2old,dtin/onep1)
584 IF(anim_v(26)+h3d_data%N_VECT_CONT_MAX >0)
ifcontmax=1
590 IF(h3d_data%N_SCAL_CSE_FRIC >0)
THEN
600 write(6,*)
'Non supported /PARITH option'
601 ELSEIF(iparit/=0)
THEN
613 3 procni2 ,iad_i2m ,fr_i2m,fr_nbcci2,addcni2(iad1),
614 4 pon%IADSDP ,pon%IADRCP ,pon%ISENDP,pon%IRECVP ,fthesky ,
615 5 niskyfie,inod_pxfem ,adsky_pxfem,procne_pxfem,
616 6 isendp_pxfem,irecvp_pxfem ,iadsdp_pxfem,iadrcp_pxfem,
617 7 fr_nbcc1,inod_crkxfem,adsky_crkxfem,procne_crkxfem,
618 8 isendp_crkxfem,irecvp_crkxfem,iadsdp_crkxfem,iadrcp_crkxfem,
619 9 condnsky,glob_therm)
624 2 ipart(i15e),ipart(i15f),ipart(i15g),ipart(i15h),ipart(i15i),
625 3 ipart(i15j),ipart(i15k),npartl )
630 1 iparg, igrouc, ngrouc, igrounc, ngrounc,
631 2 ixc,ixs,ixtg,ipm,igeo,pm,geo,tabmp_l,tab_mat)
635 IF(igroupflg(1) == 1 )
CALL findgroupc(iparg, igrouc, ngrouc, igroupc, igrouptg)
639 IF(igroupflg(2) == 1 )
CALL findgroups(iparg, igroups)
647 k2s=k0+30+nstrf(k0+14)
649 secfcum(4,nstrf(k2s),i)=1.
652 IF (nstrf(k0) >= 100 ) isectr = i
655 CALL section_init(nstrf,secbuf,nom_sect,isectr,nsect,ioldsect)
662 IF(igtyp==1.OR.(igtyp>=9 .AND. igtyp<=11).OR.igtyp==16)
THEN
663 geo(18,i) = sqrt(geo(13,i))
664 geo(19,i) = sqrt(geo(14,i))
673 geo(100,i) = sqrt(geo(38,i))
676 IF(ipm(2,i)==999)cycle
677 pm(12,i) = sqrt(abs(pm(22,i)))
678 pm(13,i) = sqrt(abs(pm(24,i)))
679 pm(14,i) = sqrt(abs(pm(25,i)))
680 pm(190,i)= sqrt(abs(pm(21,i)))
707 lwibem=lwibem+1+nnbem
708 lwrbem=lwrbem+nnbem**2
720 IF (ityp == 1 .OR.ityp == 3)
THEN
721 lwiflow=lwiflow+iflow(iad+8)
722 lwrflow=lwrflow+iflow(iad+9)
734 CALL admini(ixc ,ipart(i15c),ixtg ,ipart(i15h),ipart,
735 . igeo,ipm ,iparg ,x ,ms ,
736 . in ,elbuf_tab ,sh4tree,ipadmesh,msc ,
737 . inc ,sh3tree ,mstg ,intg ,ptg ,
738 . sh4trim ,sh3trim,mscnd ,incnd ,pm ,
739 . mcp ,mcpc ,mcptg ,tagtrimc ,tagtrimtg,
740 . glob_therm%ITHERM_FE)
742 CALL admordr(sh4tree,sh3tree,ixc,ixtg)
748 CALL cndordr(ipart,ipart(i15c),ipart(i15h),sh4tree,sh3tree)
753 IF(lag_ncf+lag_ncl > 0)
THEN
757 IF(ipari(33,i)/=0)lag_sec=1
760 IF(nprw(i+5*nrwall)==1)lag_sec=1
762 IF(nbcslag+ngjoint+nrbylag > 0)lag_sec=1
769 is_present_inter1 = -1
775 IF(ipari(7,i) == 7 .AND. ipari(34,i) == -2 .AND. ipari(22,i) == 7)
THEN
786 IF(ityp==7.AND.itied/=0)
THEN
789 IF(ityp==10) int7itied = 1
796 IF(ipari(7,i)==24)
THEN
799 IF(ipari(59,i) >0) int24e2euse=1
807 IF(ipari(7,i)==25)
THEN
815 IF (sensors%STABSEN > 0)
THEN
818 isensint(1,n) = sensors%TABSENSOR(n+1 + nsect) - sensors%TABSENSOR(n + nsect)
820 IF (ipari(71,n)>0)
THEN
826 isensint(i+1,n) = sensors%TABSENSOR(i +1 + nsect + ninter) -
827 . sensors%TABSENSOR(i + nsect + ninter)
836 IF (ipari(7,i) == 2 .AND. ipari(20,i) == 25)
THEN
847 IF (ibfv(13,n) > 0 )
THEN
863 IF(ninter/=0.AND.anim_v(4)+outp_v(4)+h3d_data%N_VECT_CONT >0)
CALL zeror(fani(1,nodft),numnthread)
864 IF(anim_v(12)+outp_v(12)+h3d_data%N_VECT_PCONT>0)
THEN
865 CALL zeror(fani(1,nfnca+nodft),numnthread)
866 CALL zeror(fani(1,nftca+nodft),numnthread)
868 IF(anim_n(2)+outp_n(2)+h3d_data%N_SCAL_DMAS >0)
THEN
869#include "vectorize.inc"
874 IF(anim_n(12)+outp_n(3)+h3d_data%N_SCAL_DINER >0)
THEN
875#include "vectorize.inc"
880 IF(anim_n(15) == 1 .OR. anim_n(16) == 1 .OR. h3d_data%N_SCAL_DAMA2 == 1)
THEN
881#include "vectorize.inc"
884 anin(ndama2+2*(i-1)+2) = zero
890 CALL zeror(a(1,ndtask),numnod)
891 IF(iroddl/=0)
CALL zeror(ar(1,ndtask),numnod)
892 DO i=ndtask,ndtask+numnod-1
896 DO i=ndtask,ndtask+numnod-1
902 CALL zero1(viscn(ndtask),numnod)
905 IF (glob_therm%ITHERM_FE > 0)
THEN
906 CALL zero1(fthe(ndtask),numnod)
909 IF(sol2sph_flag/=0)
THEN
910 CALL zero1(dmsph(ndtask),numnod)
913 IF (glob_therm%NODADT_THERM > 0)
THEN
914 CALL zero1(condn(ndtask),numnod)
919 DO i=ndtask,ndtask+numnod-1
920 pinch_data%STIFPINCH(i)=em20
924 CALL zeror(a(1,nodft),numnthread)
925 IF(iroddl/=0)
CALL zeror(ar(1,nodft),numnthread)
935 CALL zero1(viscn(nodft),numnthread)
938 IF (glob_therm%ITHERM_FE > 0 )
THEN
939 CALL zero1(fthe(nodft),numnthread)
943 CALL zero1(dmsph(nodft),numnthread)
946 IF (glob_therm%NODADT_THERM > 0)
THEN
947 CALL zero1(condn(nodft),numnthread)
951 CALL zeror(pinch_data%APINCH(1,nodft),numnthread)
953 pinch_data%STIFPINCH(i)=em20
962 stifn(i) = stifn(i)*weight(i)
966 stifn(i) = stifn(i)*weight(i)
967 stifr(i) = stifr(i)*weight(i)
975 IF (itask==0)
CALL imp_init(v,vr,iparg,ipm,igeo,elbuf_tab)
982 1 iparg ,elbuf_tab ,pon%FSKY ,pon%FSKY ,fthesky,
983 2 pon%IADC,pon%IAD_TG,iflgadm,igrouc,ngrouc,
984 3 condnsky ,glob_therm%NODADT_THERM)
988 IF( itask == 0)
CALL kinini()
992 IF(idtmins == 1 .AND. idtmins_old == 1)
THEN
993 IF(dtfacs /= dtfacs_old .OR. dtmins /= dtmins_old)
THEN
995 admsms(nodft:nodlt)=zero
996 res_sms(1:3,nodft:nodlt)=zero
997 ELSEIF(idtgrs_old/=0)
THEN
999 . -idtgrs /= igrpart(idtgrs_old)%ID)
THEN
1002 admsms(nodft:nodlt)=zero
1003 res_sms(1:3,nodft:nodlt)=zero
1007 ELSEIF(idtgrs_old==0.AND.idtgrs/=0)
THEN
1010 admsms(nodft:nodlt)=zero
1011 res_sms(1:3,nodft:nodlt)=zero
1016 ELSEIF(idtmins == 2 .AND. idtmins_old == 2)
THEN
1017 IF(dtfacs /= dtfacs_old .OR. dtmins /= dtmins_old)
THEN
1019 ELSEIF(idtgrs_old/=0)
THEN
1021 . -idtgrs/= igrpart(idtgrs_old)%ID)
THEN
1025 dmelc(1:numelc )=zero
1026 dmeltg(1:numeltg)=zero
1027 dmels(1:numels )=zero
1028 dmeltr(1:numelt )=zero
1029 dmelp(1:numelp )=zero
1030 dmelrt(1:numelr )=zero
1031 dmint2(1:4,1:i2nsn25)=zero
1033 res_sms(1:3,nodft:nodlt)=zero
1037 ELSEIF(idtgrs_old==0.AND.idtgrs/=0)
THEN
1041 dmelc(1:numelc )=zero
1042 dmeltg(1:numeltg)=zero
1043 dmels(1:numels )=zero
1044 dmeltr(1:numelt )=zero
1045 dmelp(1:numelp )=zero
1046 dmelrt(1:numelr )=zero
1047 dmint2(1:4,1:i2nsn25)=zero
1049 res_sms(1:3,nodft:nodlt)=zero
1054 ELSEIF(idtmins == 1 .AND. idtmins_old /= idtmins)
THEN
1056 admsms(nodft:nodlt)=zero
1057 res_sms(1:3,nodft:nodlt)=zero
1059 ELSEIF(idtmins == 2 .AND. idtmins_old /= idtmins)
THEN
1062 dmelc(1:numelc )=zero
1063 dmeltg(1:numeltg)=zero
1064 dmels(1:numels )=zero
1065 dmeltr(1:numelt )=zero
1066 dmelp(1:numelp )=zero
1067 dmelrt(1:numelr )=zero
1068 dmint2(1:4,1:i2nsn25)=zero
1070 res_sms(1:3,nodft:nodlt)=zero
1072 ELSEIF(idtmins_int /= 0 .AND. idtmins_int_old /= idtmins_int)
THEN
1074 res_sms(1:3,nodft:nodlt)=zero
1082 IF((idtmins==2.AND.idtmins_old/=idtmins).OR.
1083 . (idtmins_int/=0.AND.idtmins_int_old/=idtmins_int))
THEN
1088 IF(anim_ply > 0.AND. itask == 0)
THEN
1092 IF (icrack3d > 0 .AND. itask == 0)
THEN
1094 . iadc_crkxfem,iadc_crkxfem(1+4*ecrkxfec))
1100 IF (itask == 0)
THEN
1129 .
CALL tmax_ipart(iparg ,ipart ,ipart(i15a),ipart(i15c),
1130 . ipart(i15i),h3d_data)
1131 CALL ini_tmax(elbuf_tab ,iparg ,geo ,pm ,
1132 . ixs ,ixs10 ,ixs16 ,ixs20 ,ixq ,
1133 . ixc ,ixtg ,ixt ,ixp ,ixr ,
1134 . x ,d ,v ,iad_elem ,fr_elem ,
1135 . weight ,ipm ,igeo ,stack ,itask )
1137 IF (failwave%WAVE_MOD > 0)
THEN
1141 IF (nloc_dmg%IMOD > 0)
THEN
1143 CALL nloc_count_solnod(ngroup, nparg, iparg, elbuf_tab, ixs, nixs, numels)
1150 IF (idttsh>0)
CALL dim_tshedg(elbuf_tab ,ntsheg, ixs ,iparg )
1155 IF (ntsheg > 0)
THEN
1156 ALLOCATE (
ienunl(2*ntsheg),alpha_dc(numnod))
1161 nbs = iad_elem(1,nspmd+1)-iad_elem(1,1)
1162 ALLOCATE (isend(nbs),irecv(nbs))
1170 DEALLOCATE(isend,irecv)
1176 CALL inter_sh_offset_ini(
1177 . ngroup, nparg, iparg, npropg,
1178 . numgeo, geo, numelc, nixc,
1179 . ixc, numeltg, nixtg, ixtg,
1180 . numnod, nspmd, iad_elem, fr_elem,
1181 . sfr_elem, thke, elbuf_tab, sh_offset_tab,
1184 niniveltg = loads%NINIVELT
1186 loads%NINIVELT_G = niniveltg
1187 IF (tt == zero .AND. loads%NINIVELT > 0)
THEN
1189 . ngrnod, ngrbric, ngrquad, ngrsh3n,
1190 . igrnod, igrbric, igrquad, igrsh3n,
1191 . numskw, liskn, iskwn, numfram,
1192 . iframe, loads%NINIVELT,loads%INIVELT,sensors)
1196 CALL int_flushtime(intbuf_tab(n)%METRIC)
subroutine resol(timers, element, nodes, coupling, af, iaf, iskwn, neth, ipart, nom_opt, kxx, ixx, ixtg, ixs, ixq, ixt, ixp, ixr, ifill, mat_elem, ims, npc, ibcl, ibfv, idum, las, laccelm, nnlink, lnlink, iparg, dd_iad, igrv, iexlnk, kinet, ipari, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, nodpor, monvol, ilink, llink, linale, neflsw, nnflsw, icut, cluster, itask, inoise, thke, damp, pm, skews, geo, eani, bufmat, bufgeo, bufsf, w, veul, fill, dfill, alph, wb, dsave, asave, msnf, tf, forc, vel, fsav, fzero, xlas, accelm, agrv, fr_wave, failwave, parts0, elbuf, rwbuf, sensors, rwsav, rby, rivet, secbuf, volmon, lambda, wa, fv, partsav, uwa, val2, phi, segvar, r, crflsw, flsw, fani, xcut, anin, tani, secfcum, bufnois, idata, rdata, iframe, kxsp, ixsp, nod2sp, ispsym, ispcond, xframe, spbuf, xspsym, vspsym, pv, fsavd, ibvel, lbvel, wasph, w16, isphio, lprtsph, lonfsph, vsphio, fbvel, lagbuf, ibcslag, iactiv, dampr, gjbufi, gjbufr, rbmpc, ibmpc, sphveln, nbrcvois, nbsdvois, lnrcvois, lnsdvois, nercvois, nesdvois, lercvois, lesdvois, npsegcom, lsegcom, nporgeo, ixtg1, npbyl, lpbyl, rbyl, igeo, ipm, madprt, madsh4, madsh3, madsol, madnod, madfail, iad_rby, fr_rby, fr_wall, iad_rby2, fr_rby2, iad_i2m, fr_i2m, addcni2, procni2, iadi2, fr_mv, iadmv2, fr_ll, fr_rl, iadcj, fr_cj, fr_sec, iad_sec, iad_cut, fr_cut, rg_cut, newfront, fr_mad, fxbipm, fxbrpm, fxbnod, fxbmod, fxbglm, fxbcpm, fxbcps, fxblm, fxbfls, fxbdls, fxbdep, fxbvit, fxbacc, fxbelm, fxbsig, fxbgrvi, fxbgrvr, eigipm, eigibuf, eigrpm, lnodpor, fr_i18, graphe, iflow, rflow, lgrav, dd_r2r, fasolfr, fr_lagf, llagf, lprw, icontact, rcontact, sh4tree, sh3tree, ipadmesh, padmesh, msc, mstg, inc, intg, ptg, iskwp, nskwp, isensp, nsensp, iaccp, naccp, ipart_state, acontact, pcontact, factiv, sh4trim, sh3trim, mscnd, incnd, ibfflux, fbfflux, rbym, irbym, lnrbym, icodrbym, ibcv, fconv, ibftemp, fbftemp, iad_rbym, fr_rbym, weight_rm, ms_ply, zi_ply, inod_pxfem, iel_pxfem, iadc_pxfem, adsky_pxfem, icode_ply, icodt_ply, iskew_ply, admsms, madclnod, nom_sect, mcpc, mcptg, dmelc, dmeltg, mssa, dmels, mstr, dmeltr, msp, dmelp, msrt, dmelrt, ibcr, fradia, res_sms, table, irbe2, lrbe2, iad_rbe2, fr_rbe2, phie, msf, procne_pxfem, iadsdp_pxfem, iadrcp_pxfem, icfield, lcfield, cfield, msz2, diag_sms, iloadp, lloadp, loadp, inod_crk, iel_crk, iadc_crk, adsky_crk, cne_crk, procne_crk, iadsdp_crk, iadrcp_crk, ibufssg_io, ibc_ply, dmint2, ibordnode, elbuf_tab, por, nodedge, iad_edge, fr_edge, fr_nbedge, crknodiad, lgauge, gauge, igaup, ngaup, nodlevxf, dd_r2r_elem, nodglobxfe, sph2sol, sol2sph, irst, dmsph, wagap, xfem_tab, elcutc, nodenr, kxfenod2elc, enrtag, rthbu f, kxig3d, ixig3d, knot, wige, wsmcomp, stack, cputime_mp_glob, cputime_mp, tab_ump, poin_ump, sol2sph_typ, irunn_bis, addcsrect, iad_frnor, fr_nor, procnor, iad_fredg, fr_edg, drape_sh4n, drape_sh3n, tab_mat, nativ0_sms, multi_fvm, segquadfr, ms_2d, h3d_data, subsets, igrnod, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, igrsurf, forneqs, nloc_dmg, iskwp_l, knotlocpc, knotlocel, pinch_data, tag_skins6, ale_connectivity, xcell, xface, ne_nercvois, ne_nesdvois, ne_lercvois, ne_lesdvois, ibcscyc, lbcscyc, t_monvol, id_global_vois, face_vois, dynain_data, fcont_max, ebcs_tab, diffusion, kloadpinter, loadpinter, dgaploadint, drapeg, user_windows, output, interfaces, dt, loads, python, dpl0cld, vel0cld, ndamp_vrel, id_damp_vrel, fr_damp_vrel, ndamp_vrel_rbyg, names_and_titles, unitab, liflow, lrflow, glob_therm, pblast, rbe3)
subroutine resol_init(itask, fr_nbcc, isendto, ircvfrom, iad_elem, fr_elem, itabm1, ipari, iparg, itab, ixs10, ixs20, i13a, i13b, i13c, i13d, i13e, i13f, i13g, i13h, i13i, i15a, i15b, i15c, i15d, i15e, i15f, i15g, i15h, i15i, i87a, i87b, i87c, i87d, i87e, i87f, i87g, nfia, nfea, nfoa, ndma, ndma2, nodft, nodlt, ndtask, numnthread, ixs16, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, pon, ikine, a, ar, v, vr, x, d, ms, in, stifn, stifr, dmas, diner, fani, anin, wa, uwa, pm, geo, partsav, parts0, monvol, i87h, i87i, i87j, i87k, i15j, kxx, secbuf, secfcum, nstrf, igrnod, iexlnk, xframe, ixtg1, ib, viscn, dd_r2r, elbuf, ipart, madprt, madsh4, madsh3, madsol, madnod, madfail, igeo, intlist, nbintc, procne, niskyfi, weight, isizxv, ilenxv, addcni2, procni2, iad_i2m, fr_i2m, fr_nbcci2, i2size, fr_mad, lwibem, lwrbem, fxbfp, fxbefw, fxbedp, fxbgrp, fxbgrw, ndin, islen7, irlen7, islen11, irlen11, lwiflow, lwrflow, iflow, addcnel, cnel, addtmpl, ipartl, npartl, nfnca, nftca, i15ath, i35ath, ipm, sh4tree, ipadmesh, msc, inc, sh3tree, mstg, intg, ptg, fthe, fthesky, ftheskyi, nme17, islen17, irlen17, irlen7t, islen7t, lindidel, lbufidel, sh4trim, sh3trim, mscnd, incnd, irlen20, islen20, irlen20t, islen20t, nbint20, irlen20e, islen20e, niskyfie, mcp, ms0, inod_pxfem, iel_pxfem, iadc_pxfem, adsky_pxfem, icodt, icodr, ibfv, admsms, nodreac, igrouc, ngrouc, igrounc, ngrounc, fr_rby, fr_rby6, npby, nom_sect, mcpc, mcptg, grth, igrth, nelem, lag_sec, nprw, diag_sms, dmelc, dmeltg, ngrth, nft2, dmels, dmeltr, dmelp, dmelrt, res_sms, i87l, irbe2, lrbe2, nmrbe2, iad_rbe2, fr_rbe2, fr_rbe2m, r2size, lpby, procne_pxfem, isendp_pxfem, irecvp_pxfem, iadsdp_pxfem, iadrcp_pxfem, fr_nbcc1, rby, int18kine, xdp, i87m, inod_crkxfem, iel_crkxfem, iadc_crkxfem, adsky_crkxfem, procne_crkxfem, isendp_crkxfem, irecvp_crkxfem, iadsdp_crkxfem, iadrcp_crkxfem, int24use, ndama2, igroupc, igrouptg, igroups, igroupflg, dmint2, irbkin_l, nrbykin_l, kindrby, elbuf_tab, sensors, dd_r2r_elem, sdd_r2r_elem, kinet, weight_md, dmsph, ioldsect, lbufidel24, intbuf_tab, numsph_glo_r2r, flg_sphinout_r2r, i15k, condn, condnsky, kxfenod2elc, elcutc, nodedge, iad_edge, crknodiad, fr_edge, fr_nbedge, nodlevxf, crkedge, xfem_tab, isensint, nisubmax, intlist25, int24e2euse, tabmp_l, i87n, tab_mat, h3d_data, tagtrimc, tagtrimtg, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, igrpart, forneqs, int7itied, fxvel_fgeo, failwave, nloc_dmg, pinch_data, slloadp, tagslv_rby, nfnca2, nftca2, in0, sort_comm, stack, output, thke, sfr_elem, sh_offset_tab, need_comm_int25_solid_erosion, comm_int25_solid_erosion, iskwn, iframe, loads, glob_therm, pblast, rbe3)