50 1 GEO ,NPBY ,LPBY ,ITAB ,
51 2 IPARI ,IXS ,IXQ ,IXC ,IXT ,
52 4 IXP ,IXR ,IXTG ,IXTG1 ,IXS10 ,
53 5 IXS20 ,IXS16 ,IPARG ,
54 6 ELBUF ,NINT7 ,NBINTC ,X ,DMCP ,
55 7 FR_ELEM ,IAD_ELEM ,FR_I2M ,IAD_I2M ,
56 8 NPRW ,NUM_IMP1 ,NUM_IMPL ,MONVOL ,IGRSURF ,
57 9 FR_MV ,IPM ,IGEO ,IAD_RBY ,
58 A FR_RBY ,SH4TREE ,SH3TREE ,IRBE3 ,LRBE3 ,
59 B FR_RBE3M ,IAD_RBE3M ,IRBE2 ,LRBE2 ,IBFV ,
60 C VEL ,ELBUF_TAB ,IFRAME ,INTBUF_TAB,
61 D NDDL0 ,NNZK0 ,IMPBUF_TAB )
73#include
"implicit_f.inc"
89 INTEGER ,NNZK0,IPARG(NPARG,*),FR_ELEM(*) ,IAD_ELEM(2,*)
90 INTEGER NPBY(NNPBY,*),(*),ITAB(*)
91 INTEGER ,NBINTC,IPARI(NPARI,*),
92 . FR_I2M(*),IAD_I2M(*),FR_RBY(*),IAD_RBY(*)
94 . FR_MV(NSPMD+2,NVOLU),(*),FR_RBE3M(*),IAD_RBE3M(*)
95 INTEGER IPM(NPROPMI,*),IGEO(NPROPGI,*),IFRAME(LISKN,*)
97 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(,*), IXP(NIXP,*),
98 . IXR(NIXR,*), IXTG(NIXTG,*),IXS10(6,*),IXS20(12,*),
99 . IXS16(8,*),IXTG1(4,*),IRBE3(*),LRBE3(*),
100 . SH4TREE(*), SH3TREE(*),
101 . irbe2(*),lrbe2(*),ibfv(*),num_imp1(*),num_impl(ninter,nthread)
104 . geo(npropg,*),elbuf(*),vel(*),x(*),dmcp(*)
105 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
106 TYPE (INTBUF_STRUCT_) INTBUF_TAB(*)
107 TYPE () ,
DIMENSION(NSURF) :: IGRSURF
108 TYPE (IMPBUF_STRUCT_) ,
TARGET :: IMPBUF_TAB
112 INTEGER I,J,K,N,M,L,NDOFI,NDOFJ,NKINE,NMIJ2,IP,NPN,NPP,IER1,
113 . LI1,LI2,LI3,LI4,LI5,LI6,LI7,LI8,LI9,LI10,LI11,LI12,
114 . LIF,LI13,LI14,LI15,LI16,LI17,IER2
115 INTEGER NTMP,L1,NNDLNKINE,NNMAX,NKMAX,NNDL
116 INTEGER,
POINTER :: NDDL,NNZK,NRBYAC,NINT2,NMC,NMC2,NMONV
117 INTEGER,
DIMENSION(:) ,
POINTER :: IADK,JDIK,IDDL,NDOF,INLOC,LSIZE,I_IMP,
118 . irbyac,nsc,iint2,nkud,imonv,ikinw
119 my_real,
DIMENSION(:) ,
POINTER :: diag_k,lt_k,diag_m,lt_m,lb,
120 . lb0,bkud,d_imp,elbuf_c,bufmat_c,
125 CALL ancmsg(msgid=161,anmode=aninfo)
131 CALL ancmsg(msgid=162,anmode=aninfo)
138 CALL ancmsg(msgid=294,anmode=aninfo)
144 CALL ancmsg(msgid=295,anmode=aninfo)
150 ALLOCATE(impbuf_tab%IDDL(numnod))
151 ALLOCATE(impbuf_tab%NDOF(numnod))
152 ALLOCATE(impbuf_tab%INLOC(numnod))
153 ALLOCATE(impbuf_tab%IRBYAC(2*nrbykin))
154 ALLOCATE(impbuf_tab%NSC(nrbykin))
155 ALLOCATE(impbuf_tab%IINT2(ninter))
156 ALLOCATE(impbuf_tab%NKUD(nfxvel))
157 ALLOCATE(impbuf_tab%IMONV(nvolu))
158 nddl => impbuf_tab%NDDL
159 nnzk => impbuf_tab%NNZK
160 nrbyac => impbuf_tab%NRBYAC
161 nint2 => impbuf_tab%NINT2
162 nmc => impbuf_tab%NMC
163 nmc2 => impbuf_tab%NMC2
164 nmonv => impbuf_tab%NMONV
165 iddl => impbuf_tab%IDDL
166 ndof => impbuf_tab%NDOF
167 inloc => impbuf_tab%INLOC
168 lsize => impbuf_tab%LSIZE
169 i_imp => impbuf_tab%I_IMP
170 irbyac => impbuf_tab%IRBYAC
171 nsc => impbuf_tab%NSC
173 iint2 => impbuf_tab%IINT2
174 nkud => impbuf_tab%NKUD
175 imonv => impbuf_tab%IMONV
177 1 geo ,npby ,lpby ,itab ,nrbyac ,
178 2 irbyac ,nint2 ,iint2 ,ipari ,
179 3 ixs ,ixq ,ixc ,ixt ,
180 4 ixp ,ixr ,ixtg ,ixtg1 ,ixs10 ,
181 5 ixs20 ,ixs16 ,iparg ,ndof ,
182 6 iddl ,nddl ,nnzk ,elbuf ,inloc ,
183 7 lsize ,fr_elem ,iad_elem ,fr_i2m ,iad_i2m ,
184 8 nprw ,nmonv ,imonv ,monvol ,igrsurf ,
185 9 fr_mv ,ipm ,igeo ,iad_rby ,
187 b fr_rbe3m ,iad_rbe3m ,irbe2 ,lrbe2 ,ibfv ,
193 ALLOCATE(impbuf_tab%IADK(
s_iadk))
194 ALLOCATE(impbuf_tab%JDIK(
s_jdik))
195 iadk => impbuf_tab%IADK
196 jdik => impbuf_tab%JDIK
246 li11 = li10+(lsize(8)-lcokm)*lsize(9)
247 li12 = li11+lcokm*lsize(10)
248 li13 = li12+4*lsize(11)
249 li14 = li13+lsize(14)
250 li15 = li14+lsize(15)
253 ALLOCATE(impbuf_tab%IKINW(
s_ikinw))
254 ikinw => impbuf_tab%IKINW
256 1 itab ,nrbyac ,irbyac ,nsc ,ikinw(li1),
257 2 nmc ,ikinw(li2),ikinw(li3),ikinw(li4),nint2 ,
258 3 iint2 ,ipari ,intbuf_tab,ikinw(li8),ikinw(li5),
259 4 ikinw(li6),ikinw(li7),iparg ,elbuf ,elbuf_tab ,
260 5 ixs ,ixq ,ixc ,ixt ,ixp ,
261 6 ixr ,ixtg ,ixtg1 ,ixs10 ,ixs20 ,
262 7 ixs16 ,iddl ,ndof ,iadk ,
263 8 jdik ,nddl ,nnzk ,lsize(9) ,lsize(8) ,
264 9 inloc ,lsize(10),ikinw(li9),ikinw(li10),ikinw(li11),
265 a lsize(11) ,ikinw(li12),li1 ,lsize(12) ,lsize(13) ,
266 b fr_elem ,iad_elem ,ipm ,igeo ,irbe3 ,
267 c lrbe3 ,ikinw(li13),fr_i2m ,iad_i2m ,fr_rbe3m ,
268 d iad_rbe3m ,irbe2 ,lrbe2 ,ikinw(li14),ikinw(li15))
269 ntmp=
max(nkmax,nnmax)
271 maxb =
min(6*(ntmp+1),nddl)
272 maxb1 =
min(6*(nnmax+1),nddl)
274 maxb =
min(3*(ntmp+1),nddl)
275 maxb1 =
min(3*(nnmax+1),nddl)
282 WRITE(istdo,*)
' **************************'
283 WRITE(istdo,*)
' ** IMPLICIT OPTION USED **'
284 WRITE(istdo,*)
' **************************'
288 IF(nfxvel>0.AND.neig==0)
THEN
289 l1=nfxvel*
max(3,maxb)
298 IF (nmonv>0.AND.isolv>=3.AND.neig==0)
THEN
300 CALL ancmsg(msgid=163,anmode=aninfo)
305 IF ((isolv==1.OR.isolv>4).AND.n_pat>1)
THEN
306 CALL fil_span0(nrbyac,irbyac,npby,iddl,ndof,nddl)
307 CALL dim_span(n_pat,nddl,iadk,jdik,max_l,maxb1)
313 ALLOCATE(impbuf_tab%IKC(
s_ikc))
315 ALLOCATE(impbuf_tab%W_DDL(
s_w_ddl))
316 ALLOCATE(impbuf_tab%IADM(
s_iadm))
317 ALLOCATE(impbuf_tab%JDIM(
s_jdim))
324 IF (ninter/=0.AND.neig==0)
THEN
328 CALL ancmsg(msgid=214,anmode=aninfo)
337 ALLOCATE(impbuf_tab%CAND_N(
s_cand_n))
338 ALLOCATE(impbuf_tab%CAND_E(
s_cand_e))
339 ALLOCATE(impbuf_tab%INDSUBT(
s_indsubt),stat=ier1)
341 ALLOCATE(impbuf_tab%NDOFI(
s_ndofi))
342 ALLOCATE(impbuf_tab%IDDLI(
s_iddli))
344 IF (nspmd>1.AND.nbintc>0)
CALL imp_frii(ninter)
354 IF (iline/=1.AND.tt==zero.AND.isprb==0)
THEN
355 IF (nmonv>0) isigini=1
359 IF ((isprb==1.OR.isigini==1.OR.ilintf>0)
367 IF (iroddl/=0.AND.neig==0)
THEN
381 ELSEIF (ilintf>0)
THEN
395 IF (ismdisp>0)
s_x_a=nndl
420 IF (iroddl/=0)
s_acr=nndl
423 ALLOCATE(impbuf_tab%DIAG_K(
s_diag_k))
424 ALLOCATE(impbuf_tab%LT_K(
s_lt_k))
425 ALLOCATE(impbuf_tab%DIAG_M(
s_diag_m))
426 ALLOCATE(impbuf_tab%LT_M(
s_lt_m))
427 ALLOCATE(impbuf_tab%LB(
s_lb))
428 ALLOCATE(impbuf_tab%LB0(
s_lb0))
429 ALLOCATE(impbuf_tab%BKUD(
s_bkud))
430 ALLOCATE(impbuf_tab%D_IMP(
s_d_imp))
431 ALLOCATE(impbuf_tab%DR_IMP(
s_dr_imp))
434 ALLOCATE(impbuf_tab%X_C(
s_x_c))
435 ALLOCATE(impbuf_tab%DD(
s_dd))
436 ALLOCATE(impbuf_tab%DDR(
s_ddr))
437 ALLOCATE(impbuf_tab%X_A(
s_x_a))
438 ALLOCATE(impbuf_tab%FEXT(
s_fext))
439 ALLOCATE(impbuf_tab%DG(
s_dg))
440 ALLOCATE(impbuf_tab%DGR(
s_dgr))
441 ALLOCATE(impbuf_tab%DG0(
s_dg0))
442 ALLOCATE(impbuf_tab%DGR0(
s_dgr0))
444 ALLOCATE(impbuf_tab%AC(
s_ac))
445 ALLOCATE(impbuf_tab%ACR(
s_acr),stat=ier2)
447 IF (ier1/=0.OR.ier2/=0)
THEN
448 CALL ancmsg(msgid=19,anmode=aninfo,
453 impbuf_tab%D_IMP=zero
463 impbuf_tab%R_IMP(1:25)=zero
467 IF (idyna==0)
CALL cp_dm(numgeo,geo,igeo,dmcp,1)
470 IF (ninter/=0.AND.neig==0)
THEN
482 IF (iline/=1)
CALL zero1(impbuf_tab%DD,nndl)
484 IF (nbuck>0.AND.bisolv==2)
THEN
486 .
' !! BISOLV =2 REQUIRES OPTION /IMPL/GRAPH IN RADIOSS STARTER'
488 .
' !! BISOLV =2 REQUIRES OPTION /IMPL/GRAPH IN RADIOSS STARTER'
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)