35 . IXS ,IXTG ,AREA ,X ,
36 . XREFS ,XREFC ,XREFTG ,IPM ,
45 use element_mod ,
only : nixs,nixc,nixtg
49#include "implicit_f.inc"
59 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
60 TYPE (NLOCAL_STR_) ,
TARGET :: NLOC_DMG
61 INTEGER IPARG(NPARG,NGROUP),IXS(NIXS,*),IXC(NIXC,*),IXTG(NIXTG,*),
63 my_real ,
DIMENSION(NUMELC+NUMELTG),
INTENT(IN) ::
66 . x(3,*),xrefc(4,3,*),xreftg(3,3,*),xrefs(8,3,*),bufmat(*)
71 INTEGER :: L_NLOC,NG,ILOC,NEL,NFT,ITY,FORMU
73 . dt_nl,time,norm_1,
norm,d
75 .
PARAMETER :: tol1 = 5.0d-4
77 .
PARAMETER :: tol2 = 1.0d-8
79 .
DIMENSION(:),
POINTER :: fnl,unl,vnl,dnl,mnl
86 l_nloc = nloc_dmg%L_NLOC
88 fnl => nloc_dmg%FNL(1:l_nloc,1)
89 vnl => nloc_dmg%VNL(1:l_nloc)
90 dnl => nloc_dmg%DNL(1:l_nloc)
91 unl => nloc_dmg%UNL(1:l_nloc)
92 mnl => nloc_dmg%MASS(1:l_nloc)
101 DO WHILE (.NOT.converged)
118 IF ((formu>10).AND.(formu<29))
THEN
120 . dt_nl ,x ,xrefc ,nft ,
121 . nel ,ng ,ipm ,bufmat ,
125 . dt_nl ,x ,xrefc ,nft ,
126 . nel ,ng ,ipm ,bufmat ,
129 ELSEIF (ity == 7)
THEN
130 IF ((formu==1).OR.(formu==2))
THEN
132 . dt_nl ,x ,xreftg ,nft ,
133 . nel ,ng ,ipm ,bufmat ,
135 ELSEIF ((formu==30).OR.(formu==31))
THEN
137 . dt_nl ,x ,xreftg ,nft ,
138 . nel ,ng ,ipm ,bufmat ,
147 vnl = vnl + dt_nl*fnl
151 norm_1 = sqrt(dot_product(dnl,dnl))
155 norm = sqrt(dot_product(dnl,dnl))
159 converged = ((
norm<tol1).AND.(abs(
norm-norm_1)<tol2).AND.(time/=zero))
160 d = (sqrt(dot_product(dnl,dnl)))
162 CALL ancmsg(msgid=1765,msgtype=msgerror,
163 . anmode=aninfo_blind_1)
175 CALL ancmsg(msgid=1767,msgtype=msgwarning,
176 . anmode=aninfo_blind_1)
subroutine c3fint_reg_ini(elbuf_tab, nloc_dmg, area, ixtg, dt_nl, x, xreftg, nft, nel, ng, ipm, bufmat, time, failure)
subroutine cbafint_reg_ini(elbuf_tab, nloc_dmg, area, ixc, dt_nl, x, xrefc, nft, nel, ng, ipm, bufmat, time, failure)
subroutine cdkfint_reg_ini(elbuf_tab, nloc_dmg, area, ixtg, dt_nl, x, xreftg, nft, nel, ng, ipm, bufmat, time, failure)
subroutine cfint_reg_ini(elbuf_tab, nloc_dmg, area, ixc, dt_nl, x, xrefc, nft, nel, ng, ipm, bufmat, time, failure)
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine nlocal_init_sta(elbuf_tab, nloc_dmg, iparg, ixc, ixs, ixtg, area, x, xrefs, xrefc, xreftg, ipm, bufmat)
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)