54 1 PM ,GEO ,IPM ,IGEO ,ELBUF ,
55 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
56 3 IXR ,IXTG ,IXTG1 ,IXS10 ,
57 4 IXS20 ,IXS16 ,IPARG ,TF ,NPC ,
58 5 FR_WAVE ,W16 ,BUFMAT ,THKE ,BUFGEO ,
60 7 WA ,IDDL ,NDOF ,K_DIAG ,K_LT ,
61 8 IADK ,JDIK ,IKGEO ,ETAG ,ELBUF_TAB ,
62 9 STACK ,DRAPE_SH4N, DRAPE_SH3N ,DRAPEG )
70 use element_mod ,
only : nixs,nixq,nixc,nixt,nixtg,nixp,nixr
74#include "implicit_f.inc"
86#include "vect01_c.inc"
94 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*) ,
95 . IPM(NPROPMI,*),IGEO(NPROPGI,*),IKGEO
96 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(NIXT,*),
97 . IXP(NIXP,*),IXR(NIXR,*), IXTG(NIXTG,*),
98 . NPC(*), IPARG(NPARG,*),
99 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*), ETAG(*)
102 . PM(NPROPM,*),GEO(NPROPG,*),BUFMAT(*) ,TF(*) ,
103 . fr_wave(*) ,elbuf(*) ,thke(*),rby(*),skew(lskew,*),
104 . bufgeo(*),w16(*),x(3,*),wa(*)
107 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
108 TYPE (STACK_PLY) :: STACK
109 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
110 TYPE (DRAPEG_) :: DRAPEG
114 INTEGER I,N, NG, NVC, MLW, JFT, JLT,ISOLNOD,ITHK ,IPLA ,
115 . K1, K2, KAD,IAD2,NF1,IPRI, NELEM, OFFSET, NSGRP, K,
116 . k0, k3, k5, k6, k7, k8, k9, nsg, nel, kfts,iofc, istra,
117 . jj19,npe,nipmax,icnod,nft1,nf2,mpt,
118 . l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14,l15,l16,
120 . sedrape,numel_drape
121 INTEGER (MVSIZ),ISH3N,IPRMES_EL(50)
122 INTEGER ICP,ICS,IEXPAN,IETY,IG,ISUBSTACK
133 IF(iparg(8,ng)==1)
GOTO 250
143 IF (mlw == 0 .OR. mlw == 13)
GOTO 250
145 2 mlw ,nel ,nft ,kad ,ity ,
146 3 npt ,jale ,ismstr ,jeul ,jtur ,
147 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
148 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
149 6 irep ,iint ,igtyp ,israt ,isrot ,
150 7 icsen ,isorth ,isorthg ,ifailure,jsms )
159 isolnod = iparg(28,ng)
161 iexpan = iparg(49,ng)
163 isubstack=iparg(71,ng)
164 IF(ity==1.OR.ity==2) jplasol=ipla
176 IF(ity==1 .AND. jlag==1)
THEN
177 igtyp = nint(geo(12,ixs(10,nf1)))
180 IF (isrot > 0 .AND. ispmd==0)
THEN
181 IF (iprmes_el(iety)==0)
THEN
182 WRITE(iout,1005)isrot
188 2 elbuf_tab(ng)%GBUF, etag, iddl,
189 3 ndof, k_diag, k_lt, iadk,
190 4 jdik, nel, ipm, igeo,
191 5 ikgeo, bufmat, nft, mtn,
192 6 ismstr, jhbe, irep, isorth,
195 ELSEIF(isolnod==10)
THEN
197 1 pm, geo, ixs, ixs10,
198 2 x, elbuf_tab(ng),etag, iddl,
199 3 ndof, k_diag, k_lt, iadk,
200 4 jdik, nel, ipm, igeo,
201 5 ikgeo, bufmat, nft, mtn,
202 6 npt, ismstr, jhbe, irep,
205 ELSEIF(isolnod==20)
THEN
207 1 pm, geo, ixs, ixs20,
208 2 x, elbuf_tab(ng),etag, iddl,
209 3 ndof, k_diag, k_lt, iadk,
210 4 jdik, nel, ipm, igeo,
211 5 ikgeo, bufmat, nft,
212 6 ismstr, jhbe, irep, igtyp,
214 ELSEIF(isolnod==16)
THEN
216 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
217 WRITE(iout,1001)
' S16 SOLID'
218 WRITE(istdo,1001)
' S16 SOLID'
221 ELSEIF(jhbe==15.AND.isolnod==6)
THEN
224 2 elbuf_tab(ng),etag, iddl, ndof,
225 3 k_diag, k_lt, iadk, jdik,
226 4 nel, icp, ics, ipm,
227 5 igeo, ikgeo, bufmat, nft,
228 6 mtn, jhbe, isorth, isorthg,
231 ELSEIF(isolnod==8)
THEN
236 IF (jhbe/=14.AND.jhbe/=15.AND.jhbe/=17)
THEN
237 IF (ncycle==1.AND.imconv==1)
THEN
240 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
244 ELSEIF(jhbe==12.OR.jhbe==112)
THEN
246 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
252 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
258 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
267 . (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22))
THEN
270 2 elbuf_tab(ng),nel, icp, ics,
271 3 etag, iddl, ndof, k_diag,
272 4 k_lt, iadk, jdik, ipm,
273 5 igeo, ikgeo, bufmat, nft,
274 6 mtn, jhbe, jcvt, igtyp,
275 7 isorth, irep, ismstr)
276 ELSE IF(jhbe == 17 .AND. iparg(36,ng) == 2)
THEN
280 2 elbuf_tab(ng),nel, icp, ics,
281 3 etag, iddl, ndof, k_diag,
282 4 k_lt, iadk, jdik, mpt,
283 5 ipm, igeo, ikgeo, bufmat,
284 6 nft, mtn, jhbe, jcvt,
290 2 elbuf_tab(ng),nel, icp, ics,
291 3 etag, iddl, ndof, k_diag,
292 4 k_lt, iadk, jdik, mpt,
293 5 ipm, igeo, ikgeo, bufmat,
294 6 nft, mtn, ismstr, jhbe,
295 7 jcvt, igtyp, isorth, irep)
309 ELSEIF(igtyp>=29)
THEN
311 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
312 WRITE(iout,1001)
' USERS '
313 WRITE(istdo,1001)
' USERS '
319 iad2 = iparg(4,ng+1) - 21 * nel
321 iad2 = lbufel - 21 * nel + 1
337 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
338 WRITE(iout,1001)
' HEPH SOLID'
339 WRITE(istdo,1001)
' HEPH SOLID'
344 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
345 WRITE(iout,1001)
' S8 SOLID'
346 WRITE(istdo,1001)
' S8 SOLID'
350 ELSEIF(npt==8.AND.mtn/=0 .AND. isolnod/=20)
THEN
353 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
354 WRITE(iout,1001)
' S8 SOLID'
355 WRITE(istdo,1001)
' S8 SOLID'
360 ELSEIF(ity==2.AND.jmult==0.AND.jlag==1)
THEN
362 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
363 WRITE(iout,1001)
' QUAD 2D '
364 WRITE(istdo,1001)
' QUAD 2D '
371 iad2 = iparg(4,ng+1) - 6 * nel
373 iad2 = lbufel - 6 * nel + 1
376 IF (ncycle==1.AND.imconv==1)
THEN
379 IF (iprmes_el(iety)==0)
THEN
385 IF (iprmes_el(iety)==0)
THEN
391 IF (iprmes_el(iety)==0)
THEN
397 IF (iprmes_el(iety)==0)
THEN
404 IF(jhbe>=11.AND.jhbe<=19)
THEN
406 numel_drape = numelc_drape
409 1 jft ,jlt ,nft ,iabs(npt) ,mlw ,
411 3 istra ,ipla ,pm ,geo ,ixc(1,nf1) ,
412 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
413 1 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
414 7 jhbe ,thke(nf1) ,ismstr ,x ,ikgeo ,
415 8 ipm ,igeo ,iexpan ,iparg(1,ng),isubstack,
416 9 stack ,drape_sh4n ,drapeg%INDX_SH4N, sedrape,numel_drape)
420 numel_drape = numelc_drape
423 1 jft ,jlt ,nft ,iabs(npt) ,mlw ,
425 3 istra ,ipla ,pm ,geo ,ixc(1,nf1) ,
426 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
427 1 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
428 7 jhbe ,thke(nf1) ,ismstr ,x ,ikgeo ,
429 8 ipm ,igeo ,iexpan ,iparg(1,ng),isubstack,
430 9 stack ,drape_sh4n ,drapeg%INDX_SH4N, sedrape,numel_drape)
447 CALL tke3( jft ,jlt ,pm ,geo ,ixt(1,nf1) ,
448 2 x ,elbuf_tab(ng) ,nel ,offset ,ikgeo ,
449 3 etag , iddl ,ndof ,k_diag ,k_lt ,
458 CALL pke3( jft ,jlt ,nel , mtn , ismstr,
459 1 pm ,ixp(1,nf1) ,x , elbuf_tab(ng) , geo ,
460 2 offset ,ikgeo ,etag , iddl , ndof ,
461 3 k_diag ,k_lt ,iadk , jdik )
468 igtyp = nint(geo(12,ixr(1,nf1)))
469 k1=1 + 6*(numelc+numeltg)*iepsdot + 15*(numelt+numelp+nft)
472 CALL r4ke3(jft ,jlt ,nel ,mtn ,pm ,
473 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
474 2 tf ,skew ,offset,fr_wave,
476 1 etag , iddl ,ndof ,k_diag ,k_lt ,
480 ELSEIF (igtyp==8)
THEN
481 CALL r8ke3(jft ,jlt ,nel ,mtn ,pm ,
482 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
483 2 tf ,skew ,offset,fr_wave,igeo ,
484 1 etag , iddl ,ndof ,k_diag ,k_lt ,
487 ELSEIF (igtyp==12)
THEN
488 CALL r12ke3(jft ,jlt ,nel ,mtn ,pm ,
489 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
490 2 tf ,skew ,offset,fr_wave,igeo ,
491 1 etag , iddl ,ndof ,k_diag ,k_lt ,
494 ELSEIF (igtyp==13)
THEN
495 CALL r13ke3(jft ,jlt ,nel ,mtn ,pm ,
496 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
497 2 tf ,skew ,offset,fr_wave,ikgeo ,igeo ,
498 1 etag , iddl ,ndof ,k_diag ,k_lt ,
506 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
507 WRITE(iout,1001)
' THIS SPRING'
508 WRITE(istdo,1001)
' THIS SPRING'
516 iad2 = iparg(4,ng+1) - 6 * nel
518 iad2 = lbufel - 6 * nel + 1
524 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
525 WRITE(iout,1001)
' S3N6 SHELL'
526 WRITE(istdo,1001)
' S3N6 SHELL'
531 IF (ish3n == 30)
THEN
532 IF (ncycle==1.AND.imconv==1)
THEN
534 IF (iprmes_el(iety)==0.AND.ispmd==0)
THEN
535 WRITE(iout,1004)ish3n
540 numel_drape = numeltg_drape
543 1 jft ,jlt ,nft ,iabs(npt),mtn ,
545 3 istra ,ipla ,pm ,geo ,ixtg(1,nf1),
546 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
547 5 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
548 6 jhbe ,thke(numelc+nf1),ismstr ,x ,
549 7 ikgeo ,ipm ,igeo ,iexpan ,iparg(1,ng),
550 8 isubstack, stack, drape_sh3n ,drapeg%INDX_SH3N,
551 9 sedrape,numel_drape)
560 1001
FORMAT(
' *****WARNING : IMPLICITE FORMULATION IS NOT AVAILABLE
561 . WITH '/,2x,a11,
' ELEMENT : STIFFNESS IGNORED')
562 1002
FORMAT(
' *****WARNING : ELEMENT FORMULATION ISOLID= ',
563 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
564 . ,
'USING GENERIC ONE INSTEAD, POSSIBLE CONVERGING ISSUE.')
565 1003
FORMAT(
' *****WARNING : ELEMENT FORMULATION ISHELL= ',
566 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
567 . ,
'USING GENERIC ONE INSTEAD, POSSIBLE CONVERGING ISSUE.')
568 1004
FORMAT(
' *****WARNING : ELEMENT FORMULATION ISH3N = ',
569 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
570 . ,
'USING GENERIC ONE INSTEAD, POSSIBLE CONVERGING ISSUE.')
571 1005
FORMAT(
' *****WARNING : TETRA ELEMENT FORMULATION W/ ITETRA= ',
572 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'
573 . ,
'USING ITETRA=0 INSTEAD, POSSIBLE CONVERGING ISSUE.')
592 SUBROUTINE get_kii(NI ,IDDL ,IADK,K_DIAG,K_LT ,KII,ND)
596#include "implicit_f.inc"
600#include "impl1_c.inc"
605 INTEGER NI,IDDL(*) ,IADK(*)
608 . K_DIAG(*) ,K_LT(*) ,KII(6,6)
617 kii(k,k) = k_diag(id+k)
626 kii(k,k) = k_diag(id+k)
654 SUBROUTINE put_kii(NI ,IDDL ,IADK,K_DIAG,K_LT ,KII,ND)
658#include "implicit_f.inc"
662#include "impl1_c.inc"
667 INTEGER NI,IDDL(*) ,IADK(*)
670 . K_DIAG(*) ,K_LT(*) ,KII(6,6)
679 k_diag(id+k) = k_diag(id+k) + kii(k,k)
683 k_lt(ik) = k_lt(ik) + kii(k,l)
688 k_diag(id+k) = k_diag(id+k) + kii(k,k)
692 k_lt(ik) = k_lt(ik) + kii(l,k)
713 SUBROUTINE get_kij( NI ,NJ ,IDDL ,IADK,JDIK,K_LT ,KIJ ,NK,NL ,
718#include "implicit_f.inc"
722#include "impl1_c.inc"
727 INTEGER NI,NJ,IDDL(*) ,IADK(*),JDIK(*)
734 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ
749 DO jj = iadk(id+k),iadk(id+1+k)-1
751 IF (jdik(jj)==jd)
THEN
771 DO jj = iadk(id+k),iadk(id+1+k)-1
772 IF (jdik(jj)==jd)
THEN
810 SUBROUTINE put_kij( NI ,NJ ,IDDL ,IADK,JDIK,K_LT,KIJ,NK,NL ,
815#include "implicit_f.inc"
819#include "impl1_c.inc"
824 INTEGER NI,NJ,IDDL(*) ,IADK(*),JDIK(*)
831 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ
845 DO jj = iadk(id+k),iadk(id+1+k)-1
847 IF (jdik(jj)==jd)
THEN
855 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l)
860 DO jj = iadk(id+k),iadk(id+1+k)-1
861 IF (jdik(jj)==jd)
THEN
869 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k)
895#include "implicit_f.inc"
899#include "units_c.inc"
911 WRITE(iout,1001)ni,nj
912 WRITE(istdo,1001)ni,nj
913 ELSEIF (iflag==2)
THEN
914 WRITE(iout,1002)ni,nj
915 WRITE(istdo,1002)ni,nj
916 ELSEIF (iflag==3)
THEN
917 WRITE(iout,1003)ni,nj
918 WRITE(istdo,1003)ni,nj
919 ELSEIF (iflag==4)
THEN
920 WRITE(iout,1004)ni,nj
921 WRITE(istdo,1004)ni,nj
922 ELSEIF (iflag==5)
THEN
923 WRITE(iout,1005)ni,nj
924 WRITE(istdo,1005)ni,nj
926 WRITE(iout,1000)ni,nj
927 WRITE(istdo,1000)ni,nj
930 1000
FORMAT(
' *** WARNING : IN OPTION ? :'/,
931 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
932 1001
FORMAT(
' *** WARNING : IN RIGID BODY CONDENSATION:'/,
933 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
934 1002
FORMAT(
' *** WARNING : IN INTERFACE TYPE 2 CONDENSATION:'/,
935 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
936 1003
FORMAT(
' *** WARNING : IN REMESH KINEMATIC CONDENSATION:'/,
937 .
'*** NO CONNECTIVITY BETWEEN NODES:'
938 1004
FORMAT(
' *** WARNING : IN RBE3 CONDENSATION:'/,
939 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
940 1005
FORMAT(
' *** WARNING : IN RBE2 CONDENSATION:'/,
941 .
'*** NO CONNECTIVITY BETWEEN NODES:',2i10)
963 1 K_LT ,KII ,ND ,OFF )
967#include "implicit_f.inc"
971#include "impl1_c.inc"
972#include "comlock.inc"
977 INTEGER NI(*),NEL ,IDDL(*) , IADK(*)
980 . K_DIAG(*) ,K_LT(*) ,KII(ND,ND,*),OFF(*)
984 INTEGER N,K,EP,IK,ID,JD,L
989 IF (off(ep)>zero.AND.ni(ep)>0)
THEN
995 k_diag(id+k) = k_diag(id+k) + kii(k,k,ep)
1001 k_lt(ik) = k_lt(ik) + kii(k,l,ep)
1008 k_diag(id+k) = k_diag(id+k) + kii(k,k,ep)
1014 k_lt(ik) = k_lt(ik) + kii(l,k,ep)
1021#include "lockoff.inc"
1042 1 K_DIAG,K_LT ,KIJ ,ND ,OFF )
1046#include "implicit_f.inc"
1050#include "mvsiz_p.inc"
1054#include "comlock.inc"
1055#include "impl1_c.inc"
1060 INTEGER NI(*),NJ(*),NEL ,IDDL(*) ,IADK(*),JDIK(*)
1063 . K_DIAG(*),K_LT(*) ,KIJ(,ND,*),OFF(*)
1067 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ,NN(MVSIZ),NELD
1069 . KIJD(ND,ND,MVSIZ),OFFD(MVSIZ)
1073 IF (ni(ep)==nj(ep).AND.off(ep)>zero.AND.ni(ep)>0)
THEN
1079 kijd(i,j,neld)=kij(i,j,ep)+kij(j,i,ep)
1085 .
CALL assem_kii(nn ,neld ,iddl ,iadk ,k_diag,
1086 . k_lt ,kijd ,nd ,offd )
1088#include "lockon.inc"
1091 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
1092 . ni(ep)>0.AND.nj(ep)>0)
THEN
1099 DO jj = iadk(id+k),iadk(id+1+k)-1
1101 IF (jdik(jj)==jd)
THEN
1108 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
1114 DO jj = iadk(id+k),iadk(id+1+k)-1
1115 IF (jdik(jj)==jd)
THEN
1122 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
1131 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
1132 . ni(ep)>0.AND.nj(ep)>0)
THEN
1139 DO jj = iadk(id+k),iadk(id+1+k)-1
1141 IF (jdik(jj)==jd)
THEN
1148 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
1154 DO jj = iadk(id+k),iadk(id+1+k)-1
1155 IF (jdik(jj)==jd)
THEN
1162 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
1170#include "lockoff.inc"
1191#include "implicit_f.inc"
1195#include "impl1_c.inc"
1203 . K_DIAG(*) ,K_LT(*) ,KII(6,6)
1207 INTEGER K,IK,JD,L,IDM
1211 k_diag(id+k) = k_diag(id+k) + kii(k,k)
1215 k_lt(ik) = k_lt(ik) + kii(k,l)
1220 k_diag(id+k) = k_diag(id+k) + kii(k,k)
1224 k_lt(ik) = k_lt(ik) + kii(l,k)
1239 . KIJ ,NK ,NL ,IERR)
1243#include "implicit_f.inc"
1247#include "impl1_c.inc"
1252 INTEGER INI,INJ,IADK(*),JDIK(*)
1259 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ
1273 DO jj = iadk(id+k),iadk(id+1+k)-1
1275 IF (jdik(jj)==jd)
THEN
1283 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l)
1288 DO jj = iadk(id+k),iadk(id+1+k)-1
1289 IF (jdik(jj)==jd)
THEN
1297 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k)
1304!||====================================================================
1312 1 K11 ,K12 ,K13 ,K14 ,K15 ,
1313 2 K16 ,K17 ,K18 ,K22 ,K23 ,
1314 3 K24 ,K25 ,K26 ,K27 ,K28 ,
1315 4 K33 ,K34 ,K35 ,K36 ,K37 ,
1316 5 K38 ,K44 ,K45 ,K46 ,K47 ,
1317 6 K48 ,K55 ,K56 ,K57 ,K58 ,
1318 7 K66 ,K67 ,K68 ,K77 ,K78 ,
1320 use element_mod ,
only : nixs
1325#include "implicit_f.inc"
1326#include "mvsiz_p.inc"
1330 INTEGER IXS(NIXS,*),NFT,NEL,IUGEO
1333 . K11(3,3,*),K12(3,3,*),K13(3,3,*) ,K14(3,3,*) ,K15(3,3,*),
1334 . k16(3,3,*),k17(3,3,*),k18(3,3,*) ,k22(3,3,*) ,k23(3,3,*),
1335 . k24(3,3,*),k25(3,3,*),k26(3,3,*) ,k27(3,3,*) ,k28(3,3,*),
1336 . k33(3,3,*),k34(3,3,*),k35(3,3,*) ,k36(3,3,*) ,k37(3,3,*),
1337 . k38(3,3,*),k44(3,3,*),k45(3,3,*) ,k46(3,3,*) ,k47(3,3,*),
1338 . k48(3,3,*),k55(3,3,*),k56(3,3,*) ,k57(3,3,*) ,k58(3,3,*),
1339 . k66(3,3,*),k67(3,3,*),k68(3,3,*) ,k77(3,3,*) ,k78(3,3,*),
1344 INTEGER I,J,N,NT,IG(MVSIZ)
1352 CALL writeks(iugeo,nft,nel,ig,
'K11',k11)
1353 CALL writeks(iugeo,nft,nel,ig,
'K12',k12)
1354 CALL writeks(iugeo,nft,nel,ig,
'K13',k13)
1355 CALL writeks(iugeo,nft,nel,ig,
'K14',k14)
1356 CALL writeks(iugeo,nft,nel,ig,
'K15',k15)
1357 CALL writeks(iugeo,nft,nel,ig,
'K16',k16)
1358 CALL writeks(iugeo,nft,nel,ig,
'K17',k17)
1359 CALL writeks(iugeo,nft,nel,ig,
'K18',k18)
1360 CALL writeks(iugeo,nft,nel,ig,
'K22',k22)
1361 CALL writeks(iugeo,nft,nel,ig,
'K23',k23)
1362 CALL writeks(iugeo,nft,nel,ig,
'K24',k24)
1363 CALL writeks(iugeo,nft,nel,ig,
'K25',k25)
1364 CALL writeks(iugeo,nft,nel,ig,
'K26',k26)
1365 CALL writeks(iugeo,nft,nel,ig,
'K27',k27)
1366 CALL writeks(iugeo,nft,nel,ig,
'K28',k28)
1367 CALL writeks(iugeo,nft,nel,ig,
'K33',k33)
1368 CALL writeks(iugeo,nft,nel,ig,
'K34',k34)
1369 CALL writeks(iugeo,nft,nel,ig,
'K35',k35)
1370 CALL writeks(iugeo,nft,nel,ig,
'K36',k36)
1371 CALL writeks(iugeo,nft,nel,ig,
'K37',k37)
1372 CALL writeks(iugeo,nft,nel,ig,
'K38',k38)
1373 CALL writeks(iugeo,nft,nel,ig,
'K44',k44)
1374 CALL writeks(iugeo,nft,nel,ig,
'K45',k45)
1375 CALL writeks(iugeo,nft,nel,ig,
'K46',k46)
1376 CALL writeks(iugeo,nft,nel,ig,
'K47',k47)
1377 CALL writeks(iugeo,nft,nel,ig,
'K48',k48)
1378 CALL writeks(iugeo,nft,nel,ig,
'K55',k55)
1379 CALL writeks(iugeo,nft,nel,ig,
'K56',k56)
1380 CALL writeks(iugeo,nft,nel,ig,
'K57',k57)
1381 CALL writeks(iugeo,nft,nel,ig,
'K58',k58)
1382 CALL writeks(iugeo,nft,nel,ig,
'K66',k66)
1383 CALL writeks(iugeo,nft,nel,ig,
'K67',k67)
1384 CALL writeks(iugeo,nft,nel,ig,
'K68',k68)
1385 CALL writeks(iugeo,nft,nel,ig,
'K77',k77)
1386 CALL writeks(iugeo,nft,nel,ig,
'K78',k78)
1387 CALL writeks(iugeo,nft,nel,ig,
'K88',k88)
1401#include "implicit_f.inc"
1405 INTEGER IG(*),NFT,NEL,IN
1414 CHARACTER KEY*10,KEY1*23
1417 key1=
'#3d Solid Elements '//ch
1421 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9)) '
1422 WRITE(in,
'(2A)')
'# SYSSOL USRSOL K(I,J) I=1,3;J=1,3'
1425 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9))'
1426 . )nt,ig(n),((kij(i,j,n),i=1,3),j=1,3)
1432!||====================================================================
1434!||--- calls -----------------------------------------------------
1440 1 KE11 ,KE12 ,KE13 ,KE14 ,KE22 ,
1441 2 KE23 ,KE24 ,KE33 ,KE34 ,KE44 )
1442 use element_mod ,
only : nixc
1447#include
"implicit_f.inc"
1448#include "mvsiz_p.inc"
1452 INTEGER IXC(NIXC,*),NFT,NEL,IUGEO
1455 . ke11(6,6,*),ke22(6,6,*),ke33(6,6,*),ke44(6,6,*),
1456 . ke12(6,6,*),ke13(6,6,*),ke14(6,6,*),ke23(6,6,*),
1457 . ke24(6,6,*),ke34(6,6,*)
1461 INTEGER I,J,N,NT,IG(MVSIZ)
1469 CALL writekc(iugeo,nft,nel,ig,
'K11',ke11)
1470 CALL writekc(iugeo,nft,nel,ig,
'K12',ke12)
1471 CALL writekc(iugeo,nft,nel,ig,
'K13',ke13)
1472 CALL writekc(iugeo,nft,nel,ig,
'K14',ke14)
1473 CALL writekc(iugeo,nft,nel,ig,
'K22',ke22)
1474 CALL writekc(iugeo,nft,nel,ig,
'K23',ke23)
1475 CALL writekc(iugeo,nft,nel,ig,
'K24',ke24)
1476 CALL writekc(iugeo,nft,nel,ig,
'K33',ke33)
1477 CALL writekc(iugeo,nft,nel,ig,
'K34',ke34)
1478 CALL writekc(iugeo,nft,nel,ig,
'K44',ke44)
1492#include "implicit_f.inc"
1496 INTEGER IG(*),NFT,NEL,IN
1505 CHARACTER KEY*10,KEY1*23
1508 key1=
'#3d Shell Elements '//ch
1512 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9) '
1513 WRITE(in,
'(2A)')
'#SYSSHEL USRSHEL K(I,J) I=1,6;J=1,6'
1516 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9)'
1517 . )nt,ig(n),((kij(i,j,n),i=1,6),j=1,6)
1528 SUBROUTINE impkpout( NIXPL,IXP,NFT,NEL,IUGEO,KE11,KE12,KE22 )
1533#include "implicit_f.inc"
1534#include "mvsiz_p.inc"
1539 INTEGER IXP(NIXPL,*),NEL,IUGEO,NFT
1542 . ke11(6,6,*),ke22(6,6,*),ke12(6,6,*)
1546 INTEGER I,J,N,NT,IG()
1553 CALL writekp(iugeo,nft,nel,ig,
'K11',ke11)
1554 CALL writekp(iugeo,nft,nel,ig,
'K12',ke12)
1555 CALL writekp(iugeo,nft,nel,ig,
'K22',ke22)
1560!||====================================================================
1569#include "implicit_f.inc"
1573 INTEGER IG(*),NFT,NEL,IN
1582 CHARACTER KEY*10,KEY1*23
1585 key1=
'#3d Beam Elements '//ch
1589 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9) '
1590 WRITE(in,
'(2A)')
'#SYSSHEL USRSHEL K(I,J) I=1,6;J=1,6'
1593 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9),/,1P2E16.9)'
1594 . )nt,ig(n),((kij(i,j,n),i=1,6),j=1,6)
1600!||====================================================================
1605 SUBROUTINE impkiout( NIXPL,IXP,NFT,NEL,IUGEO,KE11,KE12,KE22 )
1610#include "implicit_f.inc"
1611#include "mvsiz_p.inc"
1616 INTEGER IXP(NIXPL,*),NEL,IUGEO,NFT
1619 . ke11(3,3,*),ke22(3,3,*),ke12(3,3,*)
1623 INTEGER I,J,N,NT,IG(MVSIZ)
1630 CALL writeki(iugeo,nft,nel,ig,
'K11',ke11)
1631 CALL writeki(iugeo,nft,nel,ig,
'K12',ke12)
1632 CALL writeki(iugeo,nft,nel,ig,
'K22',ke22)
1646#include "implicit_f.inc"
1650 INTEGER IG(*),NFT,NEL,IN
1659 CHARACTER KEY*10,KEY1*23
1662 key1=
'#3d TRUSS Elements '//ch
1666 .
'#FORMAT: (2I8,1P4E16.9,6(/,1P5E16.9)) '
1667 WRITE(in,
'(2A)')
'#SYSSHEL USRSHEL K(I,J) I=1,3;J=1,3'
1670 WRITE(in,
'(2I8,1P4E16.9,6(/,1P5E16.9))'
1671 . )nt,ig(n),((kij(i,j,n),i=1,3),j=1,3)
1683 1 KE11 ,KE12 ,KE13 ,KE14 ,KE22 ,
1684 2 KE23 ,KE24 ,KE33 ,KE34 ,KE44 )
1688#include "implicit_f.inc"
1689#include "mvsiz_p.inc"
1694 INTEGER IXC(NIXCL,*),NFT,NEL,IUGEO
1697 . ke11(6,6,*),ke22(6,6,*),ke33(6,6,*),ke44(6,6,*),
1698 . ke12(6,6,*),ke13(6,6,*),ke14(6,6,*),ke23(6,6,*),
1699 . ke24(6,6,*),ke34(6,6,*)
1703 INTEGER I,J,N,NT,IG(MVSIZ),I2,,I4,J2,,J4
1705 . KE(24,24,MVSIZ),EW(24,MVSIZ),TOL,LAMDA(MVSIZ),
1706 . A,B,C,LAMDAS(MVSIZ),EV(24,24),KTMP(2,2)
1722 ke(i,j,n)=ke11(i,j,n)
1723 ke(i2,j2,n)=ke22(i,j,n)
1724 ke(i3,j3,n)=ke33(i,j,n)
1725 ke(i4,j4,n)=ke44(i,j,n)
1738 ke(i,j2,n)=ke12(i,j,n)
1739 ke(i,j3,n)=ke13(i,j,n)
1740 ke(i,j4,n)=ke14(i,j,n)
1741 ke(i2,j3,n)=ke23(i,j,n)
1742 ke(i2,j4,n)=ke24(i,j,n)
1743 ke(i3,j4,n)=ke34(i,j,n)
1748 CALL jacobien(ke(1,1,n),24,ew(1,n),ev,tol,lamda(n))
1749 a=half*(ke11(1,1,n)+ke11(2,2,n))
1750 b=half*(ke11(1,1,n)-ke11(2,2,n))
1751 c=a+sqrt(b*b+ke11(1,2,n)*ke11(1,2,n))
1753 a=half*(ke22(1,1,n)+ke22(2,2,n))
1754 b=half*(ke22(1,1,n)-ke22(2,2,n))
1755 c=a+sqrt(b*b+ke22(1,2,n)*ke22(1,2,n))
1756 IF(c>lamdas(n))lamdas(n)=c
1757 a=half*(ke33(1,1,n)+ke33(2,2,n))
1758 b=half*(ke33(1,1,n)-ke33(2,2,n))
1759 c=a+sqrt(b*b+ke33(1,2,n)*ke33(1,2,n))
1760 IF(c>lamdas(n))lamdas(n)=c
1761 a=half*(ke44(1,1,n)+ke44(2,2,n))
1762 b=half*(ke44(1,1,n)-ke44(2,2,n))
1763 c=a+sqrt(b*b+ke44(1,2,n)*ke44(1,2,n))
1764 IF(c>lamdas(n))lamdas(n)=c
1766 WRITE(iugeo,
'(A)')
'#SHELL EIGENVALUES'
1768 .
'#FORMAT: (2I8,1P3E16.9,/,4(/,1P5E16.9),/,1P4E16.9) '
1770 .
'#SYSSHEL USRSHEL LAMDA1,LAMDAS,FAC, LAMDA(I),I=24'
1773 WRITE(iugeo,
'(2I8,1P3E16.9,/,4(/,1P5E16.9),/,1P4E16.9)'
1774 . )nt,ig(n),lamda(n),lamdas(n),lamda(n)/lamdas(n),
1801#include "implicit_f.inc"
1804 . a(n,n), ew(n), ev(n,n)
1805 . , b(n), z(n),tol,lamda
1806 INTEGER IZ,IS,ITER,J,NROT
1808 . SUMRS,EPS,G,H,T,C,S,TAU,THETA,R,LAMDA0
1812 IF(iz<is) a(is,iz) = a(iz,is)
1833 sumrs=sumrs+abs(a(iz,is))
1837 IF (sumrs ==zero)
GOTO 9000
1841 eps = one_fifth*sumrs/n**2
1851 g = 100. * abs(a(iz,is))
1852 IF (iter>4 .AND. abs(ew(iz))+g==abs(ew(iz))
1853 & .AND. abs(ew(is))+g==abs(ew(is)))
THEN
1855 ELSE IF (abs(a(iz,is)) > eps)
THEN
1857 IF (abs(h)+g==abs(h))
THEN
1860 theta = half*h/a(iz,is)
1861 t=one/(abs(theta)+sqrt(one+theta**2))
1862 IF (theta < zero) t=-t
1864 c=one/sqrt(one+t**2)
1876 a(j,iz)=g-s*(h+g*tau)
1877 a(j,is)=h+s*(g-h*tau)
1882 a(iz,j)=g-s*(h+g*tau)
1883 a(j,is)=h+s*(g-h*tau)
1888 a(iz,j)=g-s*(h+g*tau)
1889 a(is,j)=h+s*(g-h*tau)
1894 ev(j,iz)=g-s*(h+g*tau)
1895 ev(j,is)=h+s*(g-h*tau)
1903 IF (b(iz)>lamda)lamda=b(iz)
1908 r=abs(lamda/
max(em20,lamda0)-one)
1927 SUBROUTINE eleoff(JFT , JLT , IX, NIX ,NN ,ETAG, OFF)
1931#include "implicit_f.inc"
1939 INTEGER JFT, JLT, IX(NIX,*), ETAG(*),NN
1945 INTEGER I, J ,N,N1,NALL,IUN
1961!||====================================================================
1967!|| finter ../engine/source/tools/curve/finter.f
1976 2 SKEW ,NSENSOR,SENSOR_TAB,WEIGHT,IADC ,
1977 3 IDDL ,NDOF ,IADK ,JDIK ,K_DIAG,
1986#include "implicit_f.inc"
1987#include "comlock.inc"
1988#include "param_c.inc"
1992#include "com01_c.inc"
1993#include "com04_c.inc"
1994#include "com08_c.inc"
1998 INTEGER ,
INTENT(IN) :: NSENSOR
2002 INTEGER NPC(*),IB(NIBCLD,*)
2003 INTEGER WEIGHT(*), IADC(4,*)
2004 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*)
2007 . fac(lfaccld,*), tf(*), x(3,*), skew(lskew,*),
2008 . k_diag(*) ,k_lt(*)
2009 TYPE () ,
DIMENSION(NSENSOR) ,
INTENT(IN) :: SENSOR_TAB
2013 INTEGER NL, N1, ISK, N2, N3, N4, N5, K1, K2, K3, ISENS,K,LL,
2014 . ICODE,IAD,N_OLD,IPRES4,IERR,ND,I,J
2017 . AXI, AA, , VV, FX, FY, FZ, AX, DYDX, TS,
2018 . SIXTH,X_OLD, F1, F2,XSENS,FCX,FCY,SCALN
2020 . VKSI(4,4),VETA(4,4),VF4(4,4),
2021 . K11(6,6),K22(6,6),K33(6,6),K44(6,6),K12(6,6),
2022 . K13(6,6),K14(6,6),K23(6,6),K24(6,6),K34(6,6)
2037 IF(ib(6,nl)==sensor_tab(k)%SENS_ID) isens=k
2042 ts = tt-sensor_tab(isens)%TSTART
2054 IF (xsens==zero) cycle
2070 IF (ipres4==0)
RETURN
2071 IF (ipres4>1)
CALL kp4_ini(vksi,veta,vf4)
2085 IF(ib(6,nl)==sensor_tab(k)%SENS_ID) isens=k
2090 ts = tt-sensor_tab(isens)%TSTART
2091 IF(ts < zero)
GOTO 10
2102 IF(n_old/=n5.OR.x_old/=ts)
THEN
2103 f1 = finter(n5,ts*fcx,npc,tf,dydx)
2107 aa = -scaln*fcy*f1*xsens
2113 CALL kpquad(n1,n2,n3,n4,aa,x,vksi,veta,vf4,
2114 . k11,k22,k33,k44,k12,k13,k14,k23,k24,k34)
2121 CALL put_kij(n1 ,n2 ,iddl ,iadk,jdik,k_lt,k12,nd ,nd ,
2123 CALL put_kij(n1 ,n3 ,iddl ,iadk,jdik,k_lt,k13,nd ,nd ,
2125 CALL put_kij(n1 ,n4 ,iddl ,iadk,jdik,k_lt,k14,nd ,nd ,
2127 CALL put_kij(n2 ,n3 ,iddl ,iadk,jdik,k_lt,k23,nd ,nd ,
2129 CALL put_kij(n2 ,n4 ,iddl ,iadk,jdik,k_lt,k24,nd ,nd ,
2131 CALL put_kij(n3 ,n4 ,iddl ,iadk,jdik,k_lt,k34,nd ,nd ,
2135 CALL kptria(n1,n2,n3,aa,x,
2136 . k11,k22,k33,k12,k13,k23)
2141 CALL put_kij(n1 ,n2 ,iddl ,iadk,jdik,k_lt,k12,nd ,nd ,
2143 CALL put_kij(n1 ,n3 ,iddl ,iadk
2145 CALL put_kij(n2 ,n3 ,iddl ,iadk,jdik,k_lt,k23,nd ,nd ,
2161 SUBROUTINE kpquad(N1,N2,N3,N4,P,X,VKSI,VETA,VF4,
2162 . K11,K22,K33,K44,K12,K13,K14,K23,K24,K34)
2166#include "implicit_f.inc"
2175 . p,x(3,*),vksi(4,4),veta(4,4),vf4(4,4),
2176 . k11(6,6),k22(6,6),k33(6,6),k44(6,6),k12(6,6),
2177 . k13(6,6),k14(6,6),k23(6,6),k24(6,6),k34(6,6)
2183 . pg,j0,j1,j2,deta(4),x1,y1,s1,pg2,
2184 . ksix,ksiy,ksiz,etax,etay,etaz,hx,hy,hz,
2185 . g1x(4),g1y(4),g1z(4),g2x(4),g2y(4),g2z(4)
2186 DATA pg/.577350269189626/
2188 ksix=(-x(1,n1)+x(1,n2)+x(1,n3)-x(1,n4))*fourth
2189 ksiy=(-x(2,n1)+x(2,n2)+x(2,n3)-x(2,n4))*fourth
2190 ksiz=(-x(3,n1)+x(3,n2)+x(3,n3)-x(3,n4))*fourth
2192 etax=(-x(1,n1)-x(1,n2)+x(1,n3)+x(1,n4))*fourth
2193 etay=(-x(2,n1)-x(2,n2)+x(2,n3)+x(2,n4))*fourth
2194 etaz=(-x(3,n1)-x(3,n2)+x(3,n3)+x(3,n4))*fourth
2196 hx=(x(1,n1)-x(1,n2)+x(1,n3)-x(1,n4))*fourth
2197 hy=(x(2,n1)-x(2,n2)+x(2,n3)-x(2,n4))*fourth
2198 hz=(x(3,n1)-x(3,n2)+x(3,n3)-x(3,n4))*fourth
2277 k12(1,2)=k12(1,2) + s1*vf4(1,np)*
2278 . (vksi(2,np)*g2z(np)-veta(2,np)*g1z(np))
2279 k12(1,3)=k12(1,3) - s1*vf4(1,np)*
2280 . (vksi(2,np)*g2y(np)-veta(2,np)*g1y(np))
2281 k12(2,3)=k12(2,3) + s1*vf4(1,np)*
2282 . (vksi(2,np)*g2x(np)-veta(2,np)*g1x(np))
2283 k13(1,2)=k13(1,2) + s1*vf4(1,np)*
2284 . (vksi(3,np)*g2z(np)-veta(3,np)*g1z(np))
2285 k13(1,3)=k13(1,3) - s1*vf4(1,np)*
2286 . (vksi(3,np)*g2y(np)-veta(3,np)*g1y(np))
2287 k13(2,3)=k13(2,3) + s1*vf4(1,np)*
2289 k14(1,2)=k14(1,2) + s1*vf4(1,np)*
2290 . (vksi(4,np)*g2z(np)-veta(4,np)*g1z(np))
2291 k14(1,3)=k14(1,3) - s1*vf4(1,np)*
2292 . (vksi(4,np)*g2y(np)-veta(4,np)*g1y(np))
2293 k14(2,3)=k14(2,3) + s1*vf4(1,np)*
2294 . (vksi(4,np)*g2x(np)-veta(4,np)*g1x(np))
2295 k23(1,2)=k23(1,2) + s1*vf4(2,np)*
2296 . (vksi(3,np)*g2z(np)-veta(3,np)*g1z(np))
2297 k23(1,3)=k23(1,3) - s1*vf4(2,np)*
2298 . (vksi(3,np)*g2y(np)-veta(3,np)*g1y(np))
2299 k23(2,3)=k23(2,3) + s1*vf4(2,np)*
2300 . (vksi(3,np)*g2x(np)-veta(3,np)*g1x(np))
2301 k24(1,2)=k24(1,2) + s1*vf4(2,np)*
2302 . (vksi(4,np)*g2z(np)-veta(4,np)*g1z(np))
2303 k24(1,3)=k24(1,3) - s1*vf4(2,np)*
2304 . (vksi(4,np)*g2y(np)-veta(4,np)*g1y(np))
2305 k24(2,3)=k24(2,3) + s1*vf4(2,np)*
2306 . (vksi(4,np)*g2x(np)-veta(4,np)*g1x(np))
2307 k34(1,2)=k34(1,2) + s1*vf4(3,np)*
2308 . (vksi(4,np)*g2z(np)-veta(4,np)*g1z(np))
2309 k34(1,3)=k34(1,3) - s1*vf4(3,np)*
2310 . (vksi(4,np)*g2y(np)-veta(4,np)*g1y(np))
2311 k34(2,3)=k34(2,3) + s1*vf4(3,np)*
2312 . (vksi(4,np)*g2x(np)-veta(4,np)*g1x(np))
2316 k12(1,2)=k12(1,2) - s1*vf4(2,np)*
2317 . (vksi(1,np)*g2z(np)-veta(1,np)*g1z(np))
2318 k12(1,3)=k12(1,3) + s1*vf4(2,np)*
2319 . (vksi(1,np)*g2y(np)-veta(1,np)*g1y(np))
2320 k12(2,3)=k12(2,3) - s1*vf4(2,np)*
2321 . (vksi(1,np)*g2x(np)-veta(1,np)*g1x(np))
2322 k13(1,2)=k13(1,2) - s1*vf4(3,np)*
2323 . (vksi(1,np)*g2z(np)-veta(1,np)*g1z(np))
2324 k13(1,3)=k13(1,3) + s1*vf4(3,np)*
2325 . (vksi(1,np)*g2y(np)-veta(1,np)*g1y(np))
2326 k13(2,3)=k13(2,3) - s1*vf4(3,np)*
2327 . (vksi(1,np)*g2x(np)-veta(1,np)*g1x(np))
2328 k14(1,2)=k14(1,2) - s1*vf4(4,np)*
2329 . (vksi(1,np)*g2z(np)-veta(1,np)*g1z(np))
2330 k14(1,3)=k14(1,3) + s1*vf4(4,np)*
2331 . (vksi(1,np)*g2y(np)-veta(1,np)*g1y(np))
2332 k14(2,3)=k14(2,3) - s1*vf4(4,np)*
2333 . (vksi(1,np)*g2x(np)-veta(1,np)*g1x(np))
2334 k23(1,2)=k23(1,2) - s1*vf4(3,np)*
2335 . (vksi(2,np)*g2z(np)-veta(2,np)*g1z(np))
2336 k23(1,3)=k23(1,3) + s1*vf4(3,np)*
2337 . (vksi(2,np)*g2y(np)-veta(2,np)*g1y(np))
2338 k23(2,3)=k23(2,3) - s1*vf4(3,np)*
2339 . (vksi(2,np)*g2x(np)-veta(2,np)*g1x(np))
2340 k24(1,2)=k24(1,2) - s1*vf4(4,np)*
2341 . (vksi(2,np)*g2z(np)-veta(2,np)*g1z(np))
2342 k24(1,3)=k24(1,3) + s1*vf4(4,np)*
2343 . (vksi(2,np)*g2y(np)-veta(2,np)*g1y(np))
2344 k24(2,3)=k24(2,3) - s1*vf4(4,np)*
2345 . (vksi(2,np)*g2x(np)-veta(2,np)*g1x(np))
2346 k34(1,2)=k34(1,2) - s1*vf4(4,np)*
2347 . (vksi(3,np)*g2z(np)-veta(3,np)*g1z(np))
2348 k34(1,3)=k34(1,3) + s1*vf4(4,np)*
2349 . (vksi(3,np)*g2y(np)-veta(3,np)*g1y(np))
2350 k34(2,3)=k34(2,3) - s1*vf4(4,np)*
2351 . (vksi(3,np)*g2x(np)-veta(3,np)*g1x(np))
2381#include "implicit_f.inc"
2387 . rx , ry , rz,sx , sy, sz, det
2396 e3x = ry * sz - rz * sy
2397 e3y = rz * sx - rx * sz
2398 e3z = rx * sy - ry * sx
2399 det= sqrt(e3x*e3x + e3y*e3y + e3z*e3z)
2412#include "implicit_f.inc"
2420 . vksi(4,4),veta(4,4),vf4(4,4)
2427 DATA pg/.577350269189626/
2429 vksi(1,1)=-fourth*(one+pg)
2430 vksi(2,1)=-vksi(1,1)
2431 vksi(3,1)= fourth*(one-pg)
2432 vksi(4,1)=-vksi(3,1)
2433 veta(1,1)=-fourth*(one+pg)
2434 veta(2,1)=-fourth*(one-pg)
2435 veta(3,1)=-veta(2,1)
2436 veta(4,1)=-veta(1,1)
2437 vksi(1,2)= vksi(1,1)
2438 vksi(2,2)=-vksi(1,2)
2439 vksi(3,2)= vksi(3,1)
2440 vksi(4,2)=-vksi(3,2)
2441 veta(1,2)= veta(2,1)
2442 veta(2,2)= veta(1,1)
2443 veta(3,2)=-veta(2,2)
2444 veta(4,2)=-veta(1,2)
2445 vksi(1,3)=-vksi(3,1)
2446 vksi(2,3)=-vksi(1,3)
2447 vksi(3,3)=-vksi(1,1)
2448 vksi(4,3)=-vksi(3,3)
2449 veta(1,3)= veta(1,2)
2450 veta(2,3)= veta(2,2)
2451 veta(3,3)=-veta(2,3)
2452 veta(4,3)=-veta(1,3)
2453 vksi(1,4)= vksi(1,3)
2454 vksi(2,4)=-vksi(1,4)
2455 vksi(3,4)= vksi(3,3)
2456 vksi(4,4)=-vksi(3,4)
2457 veta(1,4)= veta(1,1)
2458 veta(2,4)= veta(2,1)
2459 veta(3,4)=-veta(2,4)
2460 veta(4,4)=-veta(1,4)
2463 vf4(i,1)=fourth+(-vksi(i,1)-veta(i,1))*pg
2464 vf4(i,2)=fourth+(vksi(i,2)-veta(i,2))*pg
2465 vf4(i,3)=fourth+(vksi(i,3)+veta(i,3))*pg
2466 vf4(i,4)=fourth+(-vksi(i,4)+veta(i,4))*pg
2468 vf4(1,1)=vf4(1,1)-pg2
2469 vf4(2,1)=vf4(2,1)+pg2
2470 vf4(3,1)=vf4(3,1)-pg2
2471 vf4(4,1)=vf4(4,1)+pg2
2472 vf4(1,2)=vf4(1,2)+pg2
2473 vf4(2,2)=vf4(2,2)-pg2
2474 vf4(3,2)=vf4(3,2)+pg2
2475 vf4(4,2)=vf4(4,2)-pg2
2476 vf4(1,3)=vf4(1,3)-pg2
2477 vf4(2,3)=vf4(2,3)+pg2
2478 vf4(3,3)=vf4(3,3)-pg2
2479 vf4(4,3)=vf4(4,3)+pg2
2480 vf4(1,4)=vf4(1,4)+pg2
2481 vf4(2,4)=vf4(2,4)-pg2
2482 vf4(3,4)=vf4(3,4)+pg2
2483 vf4(4,4)=vf4(4,4)-pg2
2490!||====================================================================
2492 . K11,K22,K33,K12,K13,K23)
2496#include "implicit_f.inc"
2506 . k11(6,6),k22(6,6),k33(6,6),k12(6,6),
2513 . x21,y21,z21,x31,y31,z31,s1,g1x,g1y,g1z,g2x,g2y,g2z
2558 k12(1,2)=s1*(g2z+g2z-g1z)
2559 k12(1,3)=-s1*(g2y+g2y-g1y)
2560 k12(2,3)=s1*(g2x+g2x-g1x)
2561 k13(1,2)=-s1*(g1z-g2z+g1z)
2562 k13(1,3)=s1*(g1y-g2y+g1y)
2563 k13(2,3)=-s1*(g1x-g2x+g1x)
2564 k23(1,2)=-s1*(g1z+g2z)
2565 k23(1,3)=s1*(g1y+g2y)
2566 k23(2,3)=-s1*(g1x+g2x)
2588 1 K_LT ,KII ,ND ,OFF ,NDOF )
2592#include "implicit_f.inc"
2596#include "impl1_c.inc"
2597#include "comlock.inc"
2602 INTEGER NI(*),NEL ,IDDL(*) , IADK(*),NDOF(*)
2605 . k_diag(*) ,k_lt(*) ,kii(nd,nd,*),off(*)
2610 INTEGER N,K,EP,IK,ID,JD,L
2613#include "lockon.inc"
2615 IF (off(ep)>zero.AND.ni(ep)>0)
THEN
2621 k_diag(id+k) = k_diag(id+k) + kii(k,k,ep)
2627 k_lt(ik) = k_lt(ik) + kii(k,l,ep)
2634 k_diag(id+k) = k_diag(id+k) + kii(k,k,ep)
2640 k_lt(ik) = k_lt(ik) + kii(l,k,ep)
2647#include "lockoff.inc"
2660 1 K_DIAG,K_LT ,KIJ ,ND ,OFF ,
2665#include "implicit_f.inc"
2669#include "mvsiz_p.inc"
2673#include "comlock.inc"
2674#include "impl1_c.inc"
2679 INTEGER NI(*),NJ(*),NEL ,IDDL(*) ,IADK(*),JDIK(*) ,NDOF(*)
2682 . k_diag(*),k_lt(*) ,kij(nd,nd,*),off(*)
2686 INTEGER I,J,K,EP,ID,JD,JDL,L,JJ,NN(MVSIZ),NELD,N,N1,N2
2688 . KIJD(ND,ND,MVSIZ),OFFD(MVSIZ)
2692 IF (ni(ep)==nj(ep).AND.off(ep)>zero.AND.ni(ep)>0)
THEN
2699 kijd(i,j,neld)=kij(i,j,ep)+kij(j,i,ep)
2705 .
CALL assemc_kii(nn ,neld ,iddl ,iadk ,k_diag,
2706 . k_lt ,kijd ,nd ,offd ,ndof )
2709#include "lockon.inc"
2712 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
2713 . ni(ep)>0.AND.nj(ep)>0)
THEN
2722 DO jj = iadk(id+k),iadk(id+1+k)-1
2724 IF (jdik(jj)==jd)
THEN
2731 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
2737 DO jj = iadk(id+k),iadk(id+1+k)-1
2738 IF (jdik(jj)==jd)
THEN
2745 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
2754 IF (off(ep)>zero.AND.ni(ep)/=nj(ep).AND.
2755 . ni(ep)>0.AND.nj(ep)>0)
THEN
2764 DO jj = iadk(id+k),iadk(id+1+k)-1
2766 IF (jdik(jj)==jd)
THEN
2773 k_lt(jdl+l) = k_lt(jdl+l) + kij(k,l,ep)
2779 DO jj = iadk(id+k),iadk(id+1+k)-1
2780 IF (jdik(jj)==jd)
THEN
2787 k_lt(jdl+l) = k_lt(jdl+l) + kij(l,k,ep)
2795#include "lockoff.inc"
2812#include "implicit_f.inc"
2816#include "com01_c.inc"
2817#include "param_c.inc"
2821 INTEGER IPARG(NPARG,*),IGROUC(*)
2825 INTEGER NG, ITY, NGROUC
2831 IF(ity==3.OR.ity==7)
THEN
2838 IF(ity==3.OR.ity==7)
THEN
2867 1 PM ,GEO ,IPM ,IGEO ,ELBUF ,
2868 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
2869 3 IXR ,IXTG ,IXTG1 ,IXS10 ,
2870 4 IXS20 ,IXS16 ,IPARG ,TF ,NPC ,
2871 5 FR_WAVE ,W16 ,BUFMAT ,THKE ,BUFGEO ,
2873 7 WA ,IDDL ,NDOF ,K_DIAG ,K_LT ,
2874 8 IADK ,JDIK ,IKGEO ,ETAG ,ITASK0 ,
2875 9 ELBUF_TAB ,STACK ,DRAPE_SH4N, DRAPE_SH3N ,DRAPEG )
2883 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
2887#include "implicit_f.inc"
2888#include "comlock.inc"
2892#include "com01_c.inc"
2893#include "param_c.inc"
2894#include "task_c.inc"
2895#include "units_c.inc"
2896#include "impl1_c.inc"
2900 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*) ,
2901 . IPM(NPROPMI,*),IGEO(NPROPGI,*),IKGEO,ITASK0
2902 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(NIXT,*),
2903 . IXP(NIXP,*),IXR(NIXR,*), IXTG(NIXTG,*),
2904 . NPC(*), IPARG(NPARG,*),
2905 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*), ETAG(*)
2908 . PM(NPROPM,*),GEO(NPROPG,*),BUFMAT(*) ,TF(*) ,
2909 . FR_WAVE(*) ,ELBUF(*) ,THKE(*),RBY(*),SKEW(LSKEW,*),
2910 . bufgeo(*),w16(*),x(3,*),wa(*)
2912 . k_diag(*) ,k_lt(*)
2913 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
2914 TYPE (STACK_PLY) :: STACK
2915 TYPE (DRAPE_),
TARGET :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
2916 TYPE (DRAPEG_) :: DRAPEG
2921 INTEGER IGROUC(NGROUP),IPRMES_EL(40)
2923 INTEGER OMP_GET_THREAD_NUM
2924 EXTERNAL omp_get_thread_num
2926 IF (ncycle==1.AND.inconv==1)
THEN
2934 itask = omp_get_thread_num()
2938 1 pm ,geo ,ipm ,igeo ,elbuf ,
2939 2 ixs ,ixq ,ixc ,ixt ,ixp ,
2940 3 ixr ,ixtg ,ixtg1 ,ixs10 ,
2941 4 ixs20 ,ixs16 ,iparg ,tf ,npc ,
2942 5 fr_wave ,w16 ,bufmat ,thke ,bufgeo ,
2944 7 wa ,iddl ,ndof ,k_diag ,k_lt ,
2945 8 iadk ,jdik ,ikgeo ,etag ,itask ,
2946 9 elbuf_tab ,igrouc ,iprmes_el ,stack ,drape_sh4n, drape_sh3n ,
2950 IF (ncycle==1.AND.inconv==1)
THEN
2956 IF (ispmd == 0 )
THEN
2958 IF (iprmes_el(i)>0)
THEN
2965 WRITE(iout,1001)
' S16 SOLID'
2966 WRITE(istdo,1001)
' S16 SOLID'
2980 WRITE(iout,1001)
' USERS '
2981 WRITE(istdo,1001)
' USERS '
2983 WRITE(iout,1001)
' HEPH SOLID'
2985 WRITE(iout,1001)
' S8 SOLID'
2987 WRITE(iout,1001)
' QUAD 2D '
2988 WRITE(istdo,1001)
' QUAD 2D '
3006 WRITE(iout,1001)
' S3N6 SHELL'
3007 WRITE(istdo,1001)
' S3N6 SHELL'
3012 WRITE(iout,1001)
'USER-SPRING'
3013 WRITE(istdo,1001)
'USER-SPRING'
3020 1001
FORMAT(
' ***** WARNING : IMPLICIT FORMULATION IS NOT AVAILABLE
3021 . WITH '/,2x,a11,
' ELEMENT : STIFFNESS IGNORED *****')
3022 1002
FORMAT(
' ***** WARNING : ELEMENT FORMULATION ISOLID= ',
3023 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3024 . ,
' USING GENERIC ONE INSTEAD'/
3025 . ,5x,
' POSSIBLE CONVERGING ISSUE. *****')
3026 1003
FORMAT(
' ***** WARNING : ELEMENT FORMULATION ISHELL= ',
3027 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3028 . ,
' USING GENERIC ONE INSTEAD'/
3029 . ,5x,
' POSSIBLE CONVERGING ISSUE. *****')
3030 1004
FORMAT(
' ***** WARNING : ELEMENT FORMULATION ISH3N = ',
3031 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3032 . ,
' USING GENERIC ONE INSTEAD'/
3033 . ,5x,
' POSSIBLE CONVERGING ISSUE. *****')
3034 1005
FORMAT(
' ***** WARNING : SPRING ELEMENT PROP.TYPE = ',
3035 . i4/,5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING,'
3036 . ,
' STIFFNESS IGNORED *****')
3037 1006
FORMAT(
' *****WARNING : TETRA ELEMENT FORMULATION W/ ITETRA>0 '/,
3038 . 5x,
'IS NOT AVAILABLE FOR STIFFNESS MATRIX BUILDING;'/,
3039 . 5x,
'USING ITETRA=0 INSTEAD, POSSIBLE CONVERGING ISSUE.')
3075 1 PM ,GEO ,IPM ,IGEO ,ELBUF ,
3076 2 IXS ,IXQ ,IXC ,IXT ,IXP ,
3077 3 IXR ,IXTG ,IXTG1 ,IXS10 ,
3078 4 IXS20 ,IXS16 ,IPARG ,TF ,NPC ,
3079 5 FR_WAVE ,W16 ,BUFMAT ,THKE ,BUFGEO ,
3081 7 WA ,IDDL ,NDOF ,K_DIAG ,K_LT ,
3082 8 IADK ,JDIK ,IKGEO ,ETAG ,ITASK ,
3083 9 ELBUF_TAB ,IGROUC ,IPRMES_EL ,STACK ,DRAPE_SH4N, DRAPE_SH3N ,
3092 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
3096#include "implicit_f.inc"
3097#include "comlock.inc"
3101#include "mvsiz_p.inc"
3105#include "com01_c.inc"
3106#include "com04_c.inc"
3107#include "param_c.inc"
3108#include "vect01_c.inc"
3109#include "scr14_c.inc"
3110#include "task_c.inc"
3111#include "impl1_c.inc"
3115 INTEGER IDDL(*) ,NDOF(*) ,IADK(*) ,JDIK(*) ,
3116 . IPM(NPROPMI,*),IGEO(NPROPGI,*),IKGEO,ITASK,IGROUC(NGROUP)
3117 INTEGER IXS(NIXS,*),IXQ(NIXQ,*),IXC(NIXC,*), IXT(NIXT,*),
3118 . IXP(NIXP,*),IXR(NIXR,*), IXTG(NIXTG,*),
3119 . NPC(*), IPARG(NPARG,*),
3120 . IXS10(6,*),IXS20(12,*),IXS16(8,*),IXTG1(4,*), ETAG(*),
3124 . PM(NPROPM,*),GEO(NPROPG,*),BUFMAT(*) ,TF(*) ,
3125 . FR_WAVE(*) ,ELBUF(*) ,THKE(*),RBY(*),SKEW(LSKEW,*),
3126 . BUFGEO(*),W16(*),X(3,*),WA(*)
3128 . k_diag(*) ,k_lt(*)
3129 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
3130 TYPE (STACK_PLY) :: STACK
3131 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
3132 TYPE (DRAPEG_) :: DRAPEG
3136 INTEGER I,N, NG, NVC, MLW, JFT, JLT,ISOLNOD,ITHK ,IPLA ,
3137 . K1, K2, KAD,IAD2,NF1,IPRI, NELEM, OFFSET, NSGRP, K,
3138 . K0, K3, K5, K6, K7, K8, K9, NSG, NEL, KFTS,IOFC, ISTRA,
3139 . JJ19,NPE,NIPMAX,ICNOD,NFT1,LIAD,INPT,NF2,MPT,
3140 . L1,L2,L3,L4,L5,L6,L7,L8,L9,L10,L11,L12,L13,L14,L15,L16,
3141 . L17,L18,L19,L20,L21,L22,L23,L24,L25,L26,L27,L28,L29,L30,
3142 . sedrape, numel_drape
3143 INTEGER INDXOF(MVSIZ),ISH3N
3144 INTEGER ICP,ICS,IEXPAN,IETY,IG,ISUBSTACK
3158 IF(iparg(8,ng)==1)
GOTO 250
3164 IF (mlw == 0 .OR. mlw == 13)
GOTO 250
3166 2 mlw ,nel ,nft ,kad ,ity ,
3167 3 npt ,jale ,ismstr ,jeul ,jtur ,
3168 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
3169 5 nvaux ,jpor ,jcvt ,jclose ,ipla ,
3170 6 irep ,iint ,igtyp ,israt ,isrot ,
3171 7 icsen ,isorth ,isorthg ,ifailure,jsms )
3172 icnod = iparg(11,ng)
3176 istra = iparg(44,ng)
3179 isolnod = iparg(28,ng)
3181 iexpan = iparg(49,ng)
3182 ish3n = iparg(23,ng)
3183 isubstack=iparg(71,ng)
3187 IF(ity==1.OR.ity==2) jplasol=ipla
3190 llt =
min(nvsiz,nel)
3199 IF(ity==1 .AND. jlag==1)
THEN
3200 igtyp = nint(geo(12,ixs(10,nf1)))
3203 IF (isrot > 0 .AND. ispmd==0)
THEN
3204 IF (iprmes_el(iety)==0)
THEN
3210 2 elbuf_tab(ng)%GBUF, etag, iddl,
3211 3 ndof, k_diag, k_lt, iadk,
3212 4 jdik, nel, ipm, igeo,
3213 5 ikgeo, bufmat, nft, mtn,
3214 6 ismstr, jhbe, irep, isorth,
3216 ELSEIF(isolnod==10)
THEN
3219 1 pm, geo, ixs, ixs10,
3220 2 x, elbuf_tab(ng),etag, iddl,
3221 3 ndof, k_diag, k_lt, iadk,
3222 4 jdik, nel, ipm, igeo,
3223 5 ikgeo, bufmat, nft, mtn,
3224 6 npt, ismstr, jhbe, irep,
3227 ELSEIF(isolnod==20)
THEN
3229 1 pm, geo, ixs, ixs20,
3230 2 x, elbuf_tab(ng),etag, iddl,
3231 3 ndof, k_diag, k_lt, iadk,
3232 4 jdik, nel, ipm, igeo,
3233 5 ikgeo, bufmat, nft, mtn,
3234 6 ismstr, jhbe, irep, igtyp,
3238 ELSEIF(isolnod==16)
THEN
3240 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3241 ELSEIF(jhbe==15.AND.isolnod==6)
THEN
3244 2 elbuf_tab(ng),etag, iddl, ndof,
3245 3 k_diag, k_lt, iadk, jdik,
3246 4 nel, icp, ics, ipm,
3247 5 igeo, ikgeo, bufmat, nft,
3248 6 mtn, jhbe, isorth, isorthg,
3251 ELSEIF(isolnod==8)
THEN
3252 IF (jhbe/=14.AND.jhbe/=15.AND.jhbe/=17)
THEN
3253 IF (ncycle==1.AND.imconv==1)
THEN
3256 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3257 ELSEIF(jhbe==12.OR.jhbe==112)
THEN
3259 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3262 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3265 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=jhbe
3270 IF (jhbe == 14 .AND.
3271 . (igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22))
THEN
3274 2 elbuf_tab(ng),nel, icp, ics,
3275 3 etag, iddl, ndof, k_diag,
3276 4 k_lt, iadk, jdik, ipm,
3277 5 igeo, ikgeo, bufmat, nft,
3278 6 mtn, jhbe, jcvt, igtyp,
3279 7 isorth, irep, ismstr)
3280 ELSE IF(jhbe == 17 .AND. iparg(36,ng) == 3)
THEN
3284 2 elbuf_tab(ng),nel, icp, ics,
3285 3 etag, iddl, ndof, k_diag,
3286 4 k_lt, iadk, jdik, mpt,
3287 5 ipm, igeo, ikgeo, bufmat,
3288 6 nft, mtn, jhbe, jcvt,
3294 2 elbuf_tab(ng),nel, icp, ics,
3295 3 etag, iddl, ndof, k_diag,
3297 5 ipm, igeo, ikgeo, bufmat,
3298 6 nft, mtn, ismstr, jhbe,
3313 ELSEIF(igtyp>=29)
THEN
3315 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3332 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3335 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3337 ELSEIF(npt==8.AND.mtn/=0 .AND. isolnod/=20)
THEN
3340 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3343 ELSEIF(ity==2.AND.jmult==0.AND.jlag==1)
THEN
3344 IF ((n2d==2.AND.jhbe==17) .OR.
3345 . (n2d==1.AND.jhbe==22))
THEN
3350 2 elbuf_tab(ng),nel, liad, icp,
3351 3 ics, etag, iddl, ndof,
3352 4 k_diag, k_lt, iadk, jdik,
3353 5 inpt, ipm, igeo, ikgeo,
3354 6 bufmat, nft, mtn, jmult,
3355 7 jhbe, jcvt, igtyp, isorth,
3359 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3366 iad2 = iparg(4,ng+1) - 6 * nel
3368 iad2 = lbufel - 6 * nel + 1
3371 IF (ncycle==1.AND.imconv==1)
THEN
3374 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3377 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3380 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3383 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=jhbe
3388 IF(jhbe>=11.AND.jhbe<=19)
THEN
3389 numel_drape = numelc_drape
3392 1 jft ,jlt ,nft ,iabs(npt) ,mlw ,
3394 3 istra ,ipla ,pm ,geo ,ixc(1,nf1) ,
3395 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
3396 1 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
3397 7 jhbe ,thke(nf1) ,ismstr ,x ,ikgeo ,
3398 8 ipm ,igeo ,iexpan ,iparg(1,ng),isubstack ,
3399 9 stack ,drape_sh4n ,drapeg%INDX_SH4N, sedrape, numel_drape)
3403 numel_drape = numelc_drape
3406 1 jft ,jlt ,nft ,iabs(npt) ,mlw ,
3408 3 istra ,ipla ,pm ,geo ,ixc(1,nf1) ,
3409 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
3410 1 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
3411 7 jhbe ,thke(nf1) ,ismstr ,x ,ikgeo ,
3412 8 ipm ,igeo ,iexpan ,iparg(1,ng),isubstack ,
3413 9 stack ,drape_sh4n ,drapeg%INDX_SH4N , sedrape, numel_drape)
3427 1 jft ,jlt ,pm ,geo ,ixt(1,nf1) ,
3428 2 x ,elbuf_tab(ng) ,nel ,offset ,ikgeo,
3429 3 etag , iddl ,ndof ,k_diag ,k_lt ,
3435 CALL pke3(jft ,jlt ,nel ,mtn ,ismstr,
3436 1 pm ,ixp(1,nf1),x ,elbuf_tab(ng),
3437 2 geo ,offset , ikgeo,
3438 3 etag , iddl ,ndof ,k_diag ,k_lt ,
3446 igtyp = nint(geo(12,ixr(1,nf1)))
3447 k1=1 + 6*(numelc+numeltg)*iepsdot + 15*(numelt+numelp+nft)
3449 CALL r4ke3 (jft ,jlt ,nel ,mtn ,pm ,
3450 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
3451 2 tf ,skew ,offset,fr_wave,
3453 1 etag , iddl ,ndof ,k_diag ,k_lt ,
3456 ELSEIF (igtyp==32)
THEN
3458 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
3459 2 tf ,skew ,offset,fr_wave,
3461 1 etag , iddl ,ndof ,k_diag ,k_lt ,
3464 ELSEIF (igtyp==8)
THEN
3465 CALL r8ke3(jft ,jlt ,nel ,mtn ,pm ,
3466 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
3467 2 tf ,skew ,offset,fr_wave,igeo ,
3468 1 etag , iddl ,ndof ,k_diag ,k_lt ,
3471 ELSEIF (igtyp==12)
THEN
3472 CALL r12ke3(jft ,jlt ,nel ,mtn
3473 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
3474 2 tf ,skew ,offset,fr_wave,igeo ,
3475 1 etag , iddl ,ndof ,k_diag ,k_lt ,
3478 ELSEIF (igtyp==13)
THEN
3479 CALL r13ke3 (jft ,jlt ,nel ,mtn ,pm ,
3480 1 geo ,ixr(1,nf1),x ,elbuf_tab(ng),npc ,
3481 2 tf ,skew ,offset,fr_wave,ikgeo ,igeo ,
3482 1 etag , iddl ,ndof ,k_diag ,k_lt ,
3490 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=igtyp
3496 iad2 = iparg(4,ng+1) - 6 * nel
3498 iad2 = lbufel - 6 * nel + 1
3503 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
3505 IF (ish3n >= 30)
THEN
3507 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=ish3n
3509 numel_drape = numeltg_drape
3512 1 jft ,jlt ,nft ,iabs(npt),mtn ,
3514 3 istra ,ipla ,pm ,geo ,ixtg(1,nf1),
3515 4 elbuf_tab(ng),bufmat ,offset ,indxof ,
3516 5 etag , iddl ,ndof ,k_diag ,k_lt , iadk ,jdik ,
3517 6 jhbe ,thke(numelc+nf1),ismstr ,x ,
3518 7 ikgeo ,ipm ,igeo ,iexpan ,iparg(1,ng),
3519 8 isubstack , stack , drape_sh3n, drapeg%INDX_SH3N,
3520 9 sedrape, numel_drape )
3526 IF (iprmes_el(iety) == 0 ) iprmes_el(iety)=1
subroutine c3ke3(jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixtg, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh3n, indx_drape, sedrape, numel_drape)
subroutine cbake3(jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixc, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh4n, indx_drape, sedrape, numel_drape)
subroutine czke3(jft, jlt, nft, npt, mtn, ithk, ncycle, istrain, ipla, pm, geo, ixc, elbuf_str, bufmat, offset, indxof, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ihbe, thke, ismstr, x, ikgeo, ipm, igeo, iexpan, iparg, isubstack, stack, drape_sh4n, indx_drape, sedrape, numel_drape)
subroutine imp_glob_khp(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, itask0, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine print_wkij(ni, nj, iflag)
subroutine impkpout(nixpl, ixp, nft, nel, iugeo, ke11, ke12, ke22)
subroutine impkcout(ixc, nft, nel, iugeo, ke11, ke12, ke13, ke14, ke22, ke23, ke24, ke33, ke34, ke44)
subroutine grpreorder(iparg, igrouc)
subroutine eleoff(jft, jlt, ix, nix, nn, etag, off)
subroutine kptria(n1, n2, n3, p, x, k11, k22, k33, k12, k13, k23)
subroutine writeks(in, nft, nel, ig, ch, kij)
subroutine put_kmii(id, iadk, k_diag, k_lt, kii, nd)
subroutine put_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine jacobien(a, n, ew, ev, tol, lamda)
subroutine kelamda(ixc, nixcl, nft, nel, iugeo, ke11, ke12, ke13, ke14, ke22, ke23, ke24, ke33, ke34, ke44)
subroutine impksout(ixs, nft, nel, iugeo, k11, k12, k13, k14, k15, k16, k17, k18, k22, k23, k24, k25, k26, k27, k28, k33, k34, k35, k36, k37, k38, k44, k45, k46, k47, k48, k55, k56, k57, k58, k66, k67, k68, k77, k78, k88)
subroutine impkiout(nixpl, ixp, nft, nel, iugeo, ke11, ke12, ke22)
subroutine writekp(in, nft, nel, ig, ch, kij)
subroutine kp4_ini(vksi, veta, vf4)
subroutine assem_kii(ni, nel, iddl, iadk, k_diag, k_lt, kii, nd, off)
subroutine put_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine assemc_kij(ni, nj, nel, iddl, iadk, jdik, k_diag, k_lt, kij, nd, off, ndof)
subroutine kpquad(n1, n2, n3, n4, p, x, vksi, veta, vf4, k11, k22, k33, k44, k12, k13, k14, k23, k24, k34)
subroutine assem_kij(ni, nj, nel, iddl, iadk, jdik, k_diag, k_lt, kij, nd, off)
subroutine get_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine produitv(rx, ry, rz, sx, sy, sz, det)
subroutine writekc(in, nft, nel, ig, ch, kij)
subroutine put_kmij(ini, inj, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine imp_kpres(ib, fac, npc, tf, x, skew, nsensor, sensor_tab, weight, iadc, iddl, ndof, iadk, jdik, k_diag, k_lt)
subroutine imp_glob_k(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine assemc_kii(ni, nel, iddl, iadk, k_diag, k_lt, kii, nd, off, ndof)
subroutine get_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine imp_glob_k0(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, itask, elbuf_tab, igrouc, iprmes_el, stack, drape_sh4n, drape_sh3n, drapeg)
subroutine writeki(in, nft, nel, ig, ch, kij)
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
subroutine pke3(jft, jlt, nel, mtn, ismstr, pm, ncc, x, elbuf_tab, geo, offset, ikgeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine q4ke2(pm, geo, ixq, x, elbuf_str, nel, liad, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, npg, ipm, igeo, ikgeo, bufmat, nft, mtn, jmult, jhbe, jcvt, igtyp, isorth, ismstr)
subroutine r12ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r13ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, ikgeo, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r4ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, ikgeo, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine r8ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine ruser32ke3(jft, jlt, nel, mtn, pm, geo, ixr, x, elbuf_tab, npf, tf, skew, offset, fr_wave, ikgeo, igeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)
subroutine s10ke3(pm, geo, ixs, ixs10, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, npt, ismstr, jhbe, irep, isorth, jlag)
subroutine s20ke3(pm, geo, ixs, ixs20, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, irep, igtyp, isorth)
subroutine s4ke3(pm, geo, ixs, x, gbuf, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, irep, isorth, iformdt)
subroutine s6cke3(pm, geo, ixs, x, elbuf_str, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, nel, icp, icsig, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, isorth, isorthg, ismstr)
subroutine s8cke3(pm, geo, ixs, x, elbuf_str, nel, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, jcvt, igtyp, isorth, irep, ismstr)
subroutine s8ske3(pm, geo, ixs, x, elbuf_str, nel, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, mpt, ipm, igeo, ikgeo, bufmat, nft, mtn, jhbe, jcvt, igtyp, isorth)
subroutine s8zke3(pm, geo, ixs, x, elbuf_str, nel, icp, icsig, etag, iddl, ndof, k_diag, k_lt, iadk, jdik, mpt, ipm, igeo, ikgeo, bufmat, nft, mtn, ismstr, jhbe, jcvt, igtyp, isorth, irep)
subroutine tke3(jft, jlt, pm, geo, nct, x, elbuf_tab, nel, offset, ikgeo, etag, iddl, ndof, k_diag, k_lt, iadk, jdik)