51 1 GEO ,NPBY ,LPBY ,ITAB ,
52 2 IPARI ,IXS ,IXQ ,IXC ,IXT ,
53 4 IXP ,IXR ,IXTG ,IXTG1 ,IXS10 ,
54 5 IXS20 ,IXS16 ,IPARG ,
55 6 ELBUF ,NINT7 ,NBINTC ,X ,DMCP ,
56 7 FR_ELEM ,IAD_ELEM ,FR_I2M ,IAD_I2M ,
57 8 NPRW ,NUM_IMP1 ,NUM_IMPL ,MONVOL ,IGRSURF ,
58 9 FR_MV ,IPM ,IGEO ,IAD_RBY ,
59 A FR_RBY ,SH4TREE ,SH3TREE ,IRBE3 ,LRBE3 ,
60 B FR_RBE3M ,IAD_RBE3M ,IRBE2 ,LRBE2 ,IBFV ,
61 C VEL ,ELBUF_TAB ,IFRAME ,INTBUF_TAB,
62 D NDDL0 ,NNZK0 ,IMPBUF_TAB )
71 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
75#include "implicit_f.inc"
91 INTEGER NDDL0,NNZK0,IPARG(NPARG,*),FR_ELEM(*) ,IAD_ELEM(2,*)
92 INTEGER NPBY(NNPBY,*),LPBY(*),ITAB(*)
93 INTEGER NINT7,NBINTC,IPARI(NPARI,*),
94 . FR_I2M(*),IAD_I2M(*),FR_RBY(*),IAD_RBY(*)
96 . FR_MV(NSPMD+2,NVOLU),NPRW(*),FR_RBE3M(*),IAD_RBE3M(*)
97 INTEGER IPM(NPROPMI,*),IGEO(NPROPGI,*),IFRAME(LISKN,*)
99 . IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(NIXT,*), IXP(NIXP,*),
100 . IXR(NIXR,*), IXTG(NIXTG,*),IXS10(6,*),IXS20(12,*),
101 . IXS16(8,*),IXTG1(4,*),IRBE3(*),LRBE3(*),
102 . SH4TREE(*), SH3TREE(*),
103 . irbe2(*),lrbe2(*),ibfv(*),num_imp1(*),num_impl(ninter,nthread)
106 . geo(npropg,*),elbuf(*),vel(*),x(*),dmcp(*)
107 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
108 TYPE (INTBUF_STRUCT_) INTBUF_TAB(*)
109 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
110 TYPE (IMPBUF_STRUCT_) ,
TARGET :: IMPBUF_TAB
114 INTEGER I,J,K,N,M,L,NDOFI,NDOFJ,NKINE,NMIJ2,IP,NPN,NPP,IER1,
115 . LI1,LI2,LI3,LI4,LI5,LI6,LI7,LI8,LI9,LI10,LI11,LI12,
116 . LIF,LI13,LI14,LI15,LI16,LI17,IER2
117 INTEGER NTMP,L1,NNDLNKINE,NNMAX,NKMAX,NNDL
118 INTEGER,
POINTER :: NDDL,NNZK,NRBYAC,NINT2,NMC,NMC2,NMONV
119 INTEGER,
DIMENSION(:) ,
POINTER :: IADK,JDIK,IDDL,NDOF,INLOC,LSIZE,I_IMP,
120 . irbyac,nsc,iint2,nkud,imonv,ikinw
121 my_real,
DIMENSION(:) ,
POINTER :: diag_k,lt_k,diag_m,lt_m,lb,
122 . lb0,bkud,d_imp,elbuf_c,bufmat_c,
127 CALL ancmsg(msgid=161,anmode=aninfo)
133 CALL ancmsg(msgid=162,anmode=aninfo)
140 CALL ancmsg(msgid=294,anmode=aninfo)
146 CALL ancmsg(msgid=295,anmode=aninfo)
152 ALLOCATE(impbuf_tab%IDDL(numnod))
153 ALLOCATE(impbuf_tab%NDOF(numnod))
154 ALLOCATE(impbuf_tab%INLOC(numnod))
155 ALLOCATE(impbuf_tab%IRBYAC(2*nrbykin))
156 ALLOCATE(impbuf_tab%NSC(nrbykin))
157 ALLOCATE(impbuf_tab%IINT2(ninter))
158 ALLOCATE(impbuf_tab%NKUD(nfxvel))
159 ALLOCATE(impbuf_tab%IMONV(nvolu))
160 nddl => impbuf_tab%NDDL
161 nnzk => impbuf_tab%NNZK
162 nrbyac => impbuf_tab%NRBYAC
163 nint2 => impbuf_tab%NINT2
164 nmc => impbuf_tab%NMC
165 nmc2 => impbuf_tab%NMC2
166 nmonv => impbuf_tab%NMONV
167 iddl => impbuf_tab%IDDL
168 ndof => impbuf_tab%NDOF
169 inloc => impbuf_tab%INLOC
170 lsize => impbuf_tab%LSIZE
171 i_imp => impbuf_tab%I_IMP
172 irbyac => impbuf_tab%IRBYAC
173 nsc => impbuf_tab%NSC
175 iint2 => impbuf_tab%IINT2
176 nkud => impbuf_tab%NKUD
177 imonv => impbuf_tab%IMONV
179 1 geo ,npby ,lpby ,itab ,nrbyac ,
180 2 irbyac ,nint2 ,iint2 ,ipari ,
181 3 ixs ,ixq ,ixc ,ixt ,
182 4 ixp ,ixr ,ixtg ,ixtg1 ,ixs10 ,
183 5 ixs20 ,ixs16 ,iparg ,ndof ,
184 6 iddl ,nddl ,nnzk ,elbuf ,inloc ,
185 7 lsize ,fr_elem ,iad_elem ,fr_i2m ,iad_i2m ,
186 8 nprw ,nmonv ,imonv ,monvol ,igrsurf
187 9 fr_mv ,ipm ,igeo ,iad_rby ,
188 a fr_rby ,sh4tree ,sh3tree ,irbe3 ,lrbe3 ,
189 b fr_rbe3m ,iad_rbe3m ,irbe2 ,lrbe2 ,ibfv ,
190 c vel ,elbuf_tab ,iframe ,intbuf_tab )
195 ALLOCATE(impbuf_tab%IADK(
s_iadk))
196 ALLOCATE(impbuf_tab%JDIK(
s_jdik))
197 iadk => impbuf_tab%IADK
198 jdik => impbuf_tab%JDIK
248 li11 = li10+(lsize(8)-lcokm)*lsize(9)
249 li12 = li11+lcokm*lsize(10)
250 li13 = li12+4*lsize(11)
251 li14 = li13+lsize(14)
252 li15 = li14+lsize(15)
255 ALLOCATE(impbuf_tab%IKINW(
s_ikinw))
256 ikinw => impbuf_tab%IKINW
258 1 itab ,nrbyac ,irbyac ,nsc ,ikinw(li1),
259 2 nmc ,ikinw(li2),ikinw(li3),ikinw(li4),nint2 ,
260 3 iint2 ,ipari ,intbuf_tab,ikinw(li8),ikinw(li5),
261 4 ikinw(li6),ikinw(li7),iparg ,elbuf ,elbuf_tab ,
262 5 ixs ,ixq ,ixc ,ixt ,ixp ,
263 6 ixr ,ixtg ,ixtg1 ,ixs10 ,ixs20 ,
264 7 ixs16 ,iddl ,ndof ,iadk ,
265 8 jdik ,nddl ,nnzk ,lsize(9) ,lsize(8) ,
266 9 inloc ,lsize(10),ikinw(li9),ikinw(li10),ikinw(li11),
267 a lsize(11) ,ikinw(li12),li1 ,lsize(12) ,lsize(13) ,
268 b fr_elem ,iad_elem ,ipm ,igeo ,irbe3 ,
269 c lrbe3 ,ikinw(li13),fr_i2m ,iad_i2m ,fr_rbe3m ,
270 d iad_rbe3m ,irbe2 ,lrbe2 ,ikinw(li14),ikinw(li15))
271 ntmp=
max(nkmax,nnmax)
273 maxb =
min(6*(ntmp+1),nddl)
274 maxb1 =
min(6*(nnmax+1),nddl)
276 maxb =
min(3*(ntmp+1),nddl)
277 maxb1 =
min(3*(nnmax+1),nddl)
284 WRITE(istdo,*)
' **************************'
285 WRITE(istdo,*)
' ** IMPLICIT OPTION USED **'
286 WRITE(istdo,*)
' **************************'
290 IF(nfxvel>0.AND.neig==0)
THEN
291 l1=nfxvel*
max(3,maxb)
300 IF (nmonv>0.AND.isolv>=3.AND.neig==0)
THEN
302 CALL ancmsg(msgid=163,anmode=aninfo)
307 IF ((isolv==1.OR.isolv>4).AND.n_pat>1)
THEN
308 CALL fil_span0(nrbyac,irbyac,npby,iddl,ndof,nddl)
309 CALL dim_span(n_pat,nddl,iadk,jdik,max_l,maxb1)
315 ALLOCATE(impbuf_tab%IKC(
s_ikc))
316 ALLOCATE(impbuf_tab%IKUD(
s_ikud))
317 ALLOCATE(impbuf_tab%W_DDL(
s_w_ddl))
318 ALLOCATE(impbuf_tab%IADM(
s_iadm))
319 ALLOCATE(impbuf_tab%JDIM(
s_jdim))
326 IF (ninter/=0.AND.neig==0)
THEN
327 CALL dim_int7(ninter,ipari ,intbuf_tab ,nint7)
330 CALL ancmsg(msgid=214,anmode=aninfo)
339 ALLOCATE(impbuf_tab%CAND_N(
s_cand_n))
340 ALLOCATE(impbuf_tab%CAND_E(
s_cand_e))
341 ALLOCATE(impbuf_tab%INDSUBT(
s_indsubt),stat=ier1)
343 ALLOCATE(impbuf_tab%NDOFI(
s_ndofi))
344 ALLOCATE(impbuf_tab%IDDLI(
s_iddli))
346 IF (nspmd>1.AND.nbintc>0)
CALL imp_frii(ninter)
356 IF (iline/=1.AND.tt==zero.AND.isprb==0)
THEN
357 IF (nmonv>0) isigini=1
361 IF ((isprb==1.OR.isigini==1.OR.ilintf>0)
369 IF (iroddl/=0.AND.neig==0)
THEN
383 ELSEIF (ilintf>0)
THEN
397 IF (ismdisp>0)
s_x_a=nndl
422 IF (iroddl/=0)
s_acr=nndl
425 ALLOCATE(impbuf_tab%DIAG_K(
s_diag_k))
426 ALLOCATE(impbuf_tab%LT_K(
s_lt_k))
427 ALLOCATE(impbuf_tab%DIAG_M(
s_diag_m))
428 ALLOCATE(impbuf_tab%LT_M(
s_lt_m))
429 ALLOCATE(impbuf_tab%LB(
s_lb))
430 ALLOCATE(impbuf_tab%LB0(
s_lb0))
431 ALLOCATE(impbuf_tab%BKUD(
s_bkud))
432 ALLOCATE(impbuf_tab%D_IMP(
s_d_imp))
433 ALLOCATE(impbuf_tab%DR_IMP(
s_dr_imp))
436 ALLOCATE(impbuf_tab%X_C(
s_x_c))
437 ALLOCATE(impbuf_tab%DD(
s_dd))
438 ALLOCATE(impbuf_tab%DDR(
s_ddr))
439 ALLOCATE(impbuf_tab%X_A(
s_x_a))
440 ALLOCATE(impbuf_tab%FEXT(
s_fext))
441 ALLOCATE(impbuf_tab%DG(
s_dg))
442 ALLOCATE(impbuf_tab%DGR(
s_dgr))
443 ALLOCATE(impbuf_tab%DG0(
s_dg0))
444 ALLOCATE(impbuf_tab%DGR0(
s_dgr0))
446 ALLOCATE(impbuf_tab%AC(
s_ac))
447 ALLOCATE(impbuf_tab%ACR(
s_acr),stat=ier2)
449 IF (ier1/=0.OR.ier2/=0)
THEN
450 CALL ancmsg(msgid=19,anmode=aninfo,
455 impbuf_tab%D_IMP=zero
465 impbuf_tab%R_IMP(1:25)=zero
469 IF (idyna==0)
CALL cp_dm(numgeo,geo,igeo,dmcp,1)
472 IF (ninter/=0.AND.neig==0)
THEN
484 IF (iline/=1)
CALL zero1(impbuf_tab%DD,nndl)
486 IF (nbuck>0.AND.bisolv==2)
THEN
488 .
' !! BISOLV =2 REQUIRES OPTION /IMPL/GRAPH IN RADIOSS STARTER'
490 .
' !! 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, ipari, 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, sensors, rby, rivet, secbuf, volmon, lambda, wa, fv, partsav, uwa, val2, phi, segvar, r, crflsw, flsw, xcut, 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, 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, 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, rwall)