50 1 IXS ,IXQ ,IXC ,IXT ,IXP ,
51 2 IXR ,GEO ,PM ,IXTG ,INDEX ,
52 3 ITRI ,NSIGSH ,IGEO ,
53 4 IPM ,NSIGS ,NSIGSPH ,KSYSUSR ,NSIGRS ,
54 5 UNITAB ,ISOLNODD00 ,LSUBMODEL ,RTRANS ,IDRAPE ,
55 6 NSIGI ,NSIGBEAM ,NSIGTRUSS ,
56 7 SIGI ,SIGSH ,SIGSP ,SIGSPH ,SIGRS ,
57 8 SIGBEAM ,SIGTRUSS ,STRSGLOB ,STRAGLOB ,ORTHOGLOB ,
58 9 ISIGSH ,IYLDINI ,FAIL_INI ,IUSOLYLD ,IUSER ,
59 A ID_SIGSH ,ID_SOLID_SIGI,ID_QUAD_SIGI ,ID_SIGSPRI ,ID_SIGBEAM,
60 B ID_SIGTRUSS,WORK ,IGRBRIC ,NIBRICK ,NIQUAD ,
61 C NISHELL ,NISH3N ,NISPRING ,NIBEAM ,NITRUSS ,
62 D MAP_TABLES ,VARMAX ,IPARG ,PTSHEL ,PTSH3N ,
63 E STACK ,IWORKSH ,IOUT ,MAT_PARAM ,NISPHCEL ,
64 F NUMSPH ,NISP ,KXSP ,ID_SIGSPH )
80#include "implicit_f.inc"
90#include "vect01_c.inc"
94 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
95 INTEGER IXS(NIXS,*), IXQ(NIXQ,*) ,IXC(NIXC,*),
96 . IGEO(NPROPGI,*) , IXT(NIXT,*) ,IXP(NIXP,*), IXR(NIXR,*),
97 . IXTG(NIXTG,*) , INDEX(*) ,ITRI(*) ,IPM(NPROPMI,*),
98 . KSYSUSR(*) , IDRAPE(NPLYMAX,*)
99 INTEGER NSIGI, NSIGSH, NSIGS, NSIGSPH, NSIGRS,
100 . ISOLNODD00(*), NSIGBEAM, NSIGTRUSS, STRSGLOB(*)
103INTEGER ID_SIGSH(*), ID_SOLID_SIGI(*), ID_QUAD_SIGI(*)
104 INTEGER ID_SIGSPRI(*), ID_SIGBEAM(*), ID_SIGTRUSS(*)
106 INTEGER NIBRICK, NIQUAD, NISHELL, NISH3N, , , NITRUSS
108 . GEO(*),PM(NPROPM,*),RTRANS(NTRANSF,*),
109 . sigi(nsigs,*),sigsh(
max(1,nsigsh),*),sigtruss(nsigtruss,*),
110 . sigsp(nsigi,*),sigsph(nsigsph,*),sigrs(nsigrs,*),sigbeam(nsigbeam,*)
113 TYPE (GROUP_) ,
DIMENSION(NGRBRIC) :: IGRBRIC
116 INTEGER,
DIMENSION(NPARG,NGROUP) ,
INTENT(IN):: IPARG
117 INTEGER,
INTENT(INOUT) :: PTSHEL(NUMELC),PTSH3N(NUMELTG)
119 INTEGER,
INTENT(IN) :: IWORKSH(3,NUMELC + NUMELTG)
120 INTEGER,
INTENT(IN) :: IOUT
121 TYPE (MATPARAM_STRUCT_) ,
DIMENSION(NUMMAT) ,
INTENT(INOUT) :: MAT_PARAM
122 INTEGER,
INTENT(INOUT) :: NISPHCEL
124INTEGER,
INTENT(IN) :: NISP
125 INTEGER,
INTENT(IN) :: KXSP(NISP,NUMSPH)
126 INTEGER,
INTENT(INOUT) :: ID_SIGSPH(NUMSPH)
130 INTEGER K, N, I,J, L,IG, ISOLNOD,IGTYP,
131 . ihbe,ne, ish3n,iis,nip,ipg,npg,pt,npp,
132 . j1,jj1,nu,ip,jj,nuvar,l_sigb,
133 . nvarsh,numr,numsolid,kk,uid,iflagunit,
134 . iunit, ifram, jjhbe, iorth, nd, nptd00,
135 . nuvard00, ndir, npgtmp,
136 . nptr,npts,nptt,jr,js,jt,nfail(5),imat,ilaw,
137 . jl,npt_max,mlawly,ipmat,jdrp_id,nvarbeam,ifail,nem1,
138 . irupt_typ,nvar_rupt,iok,nvmax,cptvar,flagdeg,num_lines,nmax_aux,nmax_fail,
139 . isubstack,nslice,ipnpt_lay,ipt
140 INTEGER IE, KN, IR, IS, IT, BRIGLOB, SUB_ID, NLAY, ILAY, PID
141 INTEGER KTRIELS, KTRIELC, KTRIELTG, KTRIELSPR
143INTEGER IGBR, JGBR, I1, SIZE,NSROT,NG,ITYR,NFTR,NELR,ISMRAD
147 . em , eb, h1, h2, h3,
148 . r0 , ein, vx, vy, vz, phi1, phi2, scaleyld,
149 . exx, eyy, exy, eyz, ezx, fxx, fyy, fxy,
150 . epsp, angle1, angle2, aa,
area,
for,ener,dens,
156 . tmpval1(varmax),tmpval2(varmax),tmpval3(varmax),
157 . tmpval4(varmax),tmpval5(varmax),tmpval6(varmax),
158 . tmpval7(varmax),tmpval8(varmax),tmpval9(varmax),
159 . tmpval10(varmax),tmpval11(varmax),tmpval12(varmax),
162 INTEGER,
DIMENSION(:),
ALLOCATABLE :: KSYSUSRTG ,KSYSUSRS,INDEXS,ITRIS,
163 . KSYSUSRQ,INDEXQ,ITRIQ,IES2IPARG,MLAW_LY,ITRISPH,INDEXSPH,KSYSUSRSPH
165 CHARACTER(LEN=NCHARKEY) :: ,KEY2,KEY3
166 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
173 LOGICAL IS_AVAILABLE,GLOB
175 INTEGER NB_INIBRI,NB_INISHE,NB_INISH3,NB_ELEMENTS,ID_ELEM,
176 . ELT,ELTP,INI,K0,NB_INITRUSS,NB_INIBEAM
179 . thk,for1,for2,for3,mom1,mom2,mom3
191 ALLOCATE (itris(numels))
192 ALLOCATE (indexs(2*numels))
193 ALLOCATE (ksysusrs(2*numels))
194 ALLOCATE (ksysusrtg(2*numeltg))
195 ALLOCATE (itriq(numelq))
196 ALLOCATE (indexq(2*numelq))
197 ALLOCATE (ksysusrq(2*numelq))
198 ALLOCATE (ies2iparg(numels) ,stat=istat)
199 ALLOCATE (itrisph(numsph))
200 ALLOCATE (indexsph(2*numsph))
201 ALLOCATE (ksysusrsph(2*numsph))
202 IF (istat /= 0)
CALL ancmsg(msgid=268,anmode=aninfo,
206 IF (numels > 0) itris(1:numels) = 0
207 IF (numels > 0) indexs(1:2*numels) = 0
208 IF (numels > 0) ksysusrs(1:2*numels)=0
209 IF (numeltg > 0) ksysusrtg(1:2*numeltg)=0
210 IF (numelq > 0) itriq(1:numelq) = 0
212 IF (numelq > 0) ksysusrq(1:2*numelq)=0
213 IF (numels > 0) ies2iparg(1:numels) = 0
227 is_available = .false.
235 IF ( NB_INIBRI > 0 ) THEN
241 IF (ITYR /= 1 ) CYCLE
243 IES2IPARG(I+NFTR) = NG
247 ! Start reading /INIBRI card
248 CALL HM_OPTION_START('/inibri
')
256 CALL HM_OPTION_READ_KEY(LSUBMODEL,
258 . SUBMODEL_INDEX = SUB_INDEX,
259 . SUBMODEL_ID = SUB_ID,
263 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
273 END SELECT ! SELECT CASE(KEY)
275.AND.
IF (ISTRSFG>0ISTRSF>0) THEN
276 CALL ANCMSG(MSGID=2044,ANMODE=ANINFO,MSGTYPE=MSGWARNING)
278.AND.
IF (ISTRAFG>0ISTRAF>0) THEN
279 CALL ANCMSG(MSGID=2045,ANMODE=ANINFO,MSGTYPE=MSGWARNING)
281 END IF !( NB_INIBRI > 0 ) THEN
288 IF ( NB_INIBRI > 0 ) THEN
290 ! Start reading /INIBRI card
291 CALL HM_OPTION_START('/inibri
')
293! to be replaced by --- MAP_TABLES%ISOLM ---
296 ITRIS(IE) = IXS(NIXS,IE)
298 CALL MY_ORDERS(0,WORK,ITRIS,INDEXS,NUMELS,1)
301 KSYSUSRS(J) =IXS(NIXS,IE)
302 KSYSUSRS(NUMELS+J)=IE
309 CALL HM_OPTION_READ_KEY(LSUBMODEL,
311 . SUBMODEL_INDEX = SUB_INDEX,
312 . SUBMODEL_ID = SUB_ID,
316 DO IUNIT=1,UNITAB%NUNITS
317 IF (UNITAB%UNIT_ID(IUNIT) == UID) THEN
322.AND.
IF (UID/=0IFLAGUNIT == 0) THEN
323 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,
324 . I2=UID,I1=SUB_ID,C1='inibri
',
325 . C2='inibri
',C3=' ')
328 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
332 CALL HM_GET_INTV('inibri_fill_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
335 ! Reading --- ID_ELEM, FILL ---
336 CALL HM_GET_INT_ARRAY_INDEX('brick_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
337 CALL HM_GET_FLOAT_ARRAY_INDEX('value',FILL,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
340 ID_SOLID_SIGI(I) = ID_ELEM
343 ENDDO ! DO J=1,NB_ELEMENTS
347 CALL HM_GET_INTV('inibri_epsp_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
350 ! Reading --- ID_ELEM, EPSP ---
351 CALL HM_GET_INT_ARRAY_INDEX('brick_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
352 CALL HM_GET_FLOAT_ARRAY_INDEX('value',EPSP,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
355 ID_SOLID_SIGI(I) = ID_ELEM
358 ENDDO ! DO J=1,NB_ELEMENTS
362 CALL HM_GET_INTV('inibri_ener_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
365 ! Reading --- ID_ELEM, ENER ---
366 CALL HM_GET_INT_ARRAY_INDEX('brick_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
367 CALL HM_GET_FLOAT_ARRAY_INDEX('value',ENER,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
370 ID_SOLID_SIGI(I) = ID_ELEM
373 ENDDO ! DO J=1,NB_ELEMENTS
377 CALL HM_GET_INTV('inibri_dens_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
380 ! Reading --- ID_ELEM, DENS ---
381 CALL HM_GET_INT_ARRAY_INDEX('brick_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
382 CALL HM_GET_FLOAT_ARRAY_INDEX('value',DENS,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
385 ID_SOLID_SIGI(I) = ID_ELEM
388 ENDDO ! DO J=1,NB_ELEMENTS
392 CALL hm_get_intv(
'inibri_stress_count',nb_elements,is_available,lsubmodel)
405 id_solid_sigi(i) = id_elem
414 CALL hm_get_intv(
'inibri_aux_count',nb_elements,is_available,lsubmodel)
424 ie=uel2sys(id_elem,ksysusrs,numels)
428 nonexist = nonexist+1
430 keyword =
'/INIBRI/AUX '
433 id_solid_sigi(i) = id_elem
435 sigsp(nvsolid1 + nvsolid2 +1 , i) = isolnod
436 sigsp(nvsolid1 + nvsolid2 +2 , i) = npt
437 sigsp(nvsolid1 + nvsolid2 +3 , i) = nuvar
438 sigsp(nvsolid1 + nvsolid2 +4 , i) = jjhbe
441 1 ixs ,igeo ,itris ,isolnodd00 ,ie ,
442 2 npt ,nlay ,isolnod ,jjhbe ,igtyp ,
447 nuvard00 = ipm(8,imat)
448 IF (nuvard00 > nuvar)
THEN
450 . msgtype=msgwarning,
453 . c1=
'NUMBER OF USER VARIABLES',
454 . c2=
'MATERIAL LAW ',
455 . i2=ipm(1,ixs(10,ie)),
458 IF ((ilaw == 36 .and. (nuvar < 4 .or. nuvard00 > 3) .and.
459 . nuvard00 < nuvar) .or.
460 . (ilaw /= 36 .and. ilaw /= 78 .and. ilaw /= 87 .and. ilaw /= 112 .and. nuvard00 < nuvar))
THEN
465 . c1=
'NUMBER OF USER VARIABLES',
466 . c2=
'MATERIAL LAW ',
467 . i2=ipm(1,ixs(10,ie)),
474 iis = nvsolid1 + nvsolid2 + 4 + nuvar*(jj - 1)
477 sigsp(iis + k,i) = tmpval(l)
485 keyword=
'/INIBRI/STRS_FG'
489 CALL hm_get_intv(
'inibri_strs_fglo_count',nb_elements,is_available,lsubmodel)
504 IF (jjhbe == 2) jjhbe = 1
507 IF (igbr == igrbric(k)%ID)
THEN
512 ie = igrbric(jgbr)%ENTITY(1)
513 id_elem = ixs(nixs,ie)
520 ie=uel2sys(id_elem,ksysusrs,numels)
524 nonexist = nonexist+1
525 ELSEIF (strsglob(ie) >= 0)
THEN
530 id_solid_sigi(i) = id_elem
534 IF (briglob == 1) strsglob(ie)=1
537 1 ixs ,igeo ,itris ,isolnodd00 ,ie ,
538 2 npt ,nlay ,isolnod ,jjhbe ,igtyp
541 IF ( (isolnod == 8 .AND. (jjhbe==1.OR.jjhbe==2.OR.jjhbe==12.OR.jjhbe==24)
542 . .AND. igtyp /= 43) .OR.(isolnod == 4 .AND. isrot == 0)
543 . .OR.(isolnod == 4 .AND. isrot == 3).OR.jjhbe
THEN
545 IF(isolnod == 8 .AND. jjhbe == 12)
THEN
578 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
579 sigsp(iis+1,i) = s(1)
580 sigsp(iis+2,i) = s(2)
581 sigsp(iis+3,i) = s(3)
582 sigsp(iis+4,i) = s(4)
583 sigsp(iis+5,i) = s(5)
584 sigsp(iis+6,i) = s(6)
587 sigsp(iis+7,i) = epsp
605 sigi(8,i) = tmpval2(1)
606 sigi(9,i) = tmpval1(1)
607 ELSEIF (npt == 1)
THEN
608 sigi(8,i) = tmpval2(1)
609 sigi(9,i) = tmpval1(1)
611 sigsp(3,i) = tmpval1(1)
612 sigsp(4,i) = tmpval2(1)
621 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
628 sigi(10,i)= tmpval9(1)
639 sigsp(iis+1,i) = s(1)
640 sigsp(iis+2,i) = s(2)
641 sigsp(iis+3,i) = s(3)
645 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
646 sigsp(iis+1,i) = s(1)
647 sigsp(iis+2,i) = s(2)
648 sigsp(iis+3,i) = s(3)
649 sigsp(iis+4,i) = s(4)
650 sigsp(iis+5,i) = s(5)
651 sigsp(iis+6,i) = s(6)
653 sigsp(iis+7,i) = epsp
655 sigi(l,i) = sigi(l,i) + fourth*sigsp(iis+l,i)
657 sigi(10,i)= sigi(10,i) + fourth*sigsp(iis+7,i)
665 IF (isolnod == 16)
THEN
667 SIZE = nptt*nptr*nlay
682 k = jr + ( (jl-1) + (jt-1)*nlay )*nptr
693 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
694 sigsp(iis+1,i) = s(1)
695 sigsp(iis+2,i) = s(2)
696 sigsp(iis+3,i) = s(3)
697 sigsp(iis+4,i) = s(4)
698 sigsp(iis+5,i) = s(5)
699 sigsp(iis+6,i) = s(6)
703 sigsp(iis+7,i) = epsp
710 ELSEIF (isolnod == 20)
THEN
712 SIZE = nptt*npts*nptr
729 k = jr + ( (js-1) + (jt-1)*npts )*nptr
740 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
741 sigsp(iis+1,i) = s(1)
742 sigsp(iis+2,i) = s(2)
743 sigsp(iis+3,i) = s(3)
744 sigsp(iis+4,i) = s(4)
745 sigsp(iis+5,i) = s(5)
746 sigsp(iis+6,i) = s(6)
750 sigsp(iis+7,i) = epsp
759 IF (igtyp == 22)
THEN
761 SIZE = nptr*npts*nptt
778 k = jr + ( (js-1) + (jt-1)*npts )*nptr
789 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
790 sigsp(iis+1,i) = s(1)
791 sigsp(iis+2,i) = s(2)
792 sigsp(iis+3,i) = s(3)
793 sigsp(iis+4,i) = s(4)
794 sigsp(iis+5,i) = s(5)
795 sigsp(iis+6,i) = s(6)
799 sigsp(iis+7,i) = epsp
827 IF (sub_id /= 0)
CALL subrottens(s,rtrans,sub_id,lsubmodel)
828 sigsp(iis+1,i) = s(1)
829 sigsp(iis+2,i) = s(2)
830 sigsp(iis+3,i) = s(3)
831 sigsp(iis+4,i) = s(4)
832 sigsp(iis+5,i) = s(5)
833 sigsp(iis+6,i) = s(6)
837 sigsp(iis+7,i) = epsp
848 DO k = 2,igrbric(jgbr)%NENTITY
849 ie = igrbric(jgbr)%ENTITY(k)
851 1 ixs ,igeo ,itris ,isolnodd00 ,ie ,
852 2 npt ,nlay ,isolnod ,jjhbe ,igtyp ,
854 IF (strsglob(ie) >= 0) cycle
855 IF (briglob == 1) strsglob(ie)=1
857 id_solid_sigi(i) = ixs(11,ie)
859 sigsp(l,i) = sigsp(l,i1)
862 sigi(l,i) = sigi(l,i1)
871 keyword=
'/INIBRI/STRS_F '
874 CALL hm_get_intv(
'inibri_strs_f_count',nb_elements,is_available,lsubmodel)
891 IF (igbr == igrbric(k)%ID)
THEN
896 ie = igrbric(jgbr)%ENTITY(1)
897 id_elem = ixs(nixs,ie)
903 ie=uel2sys(id_elem,ksysusrs,numels)
907 nonexist = nonexist+1
908 ELSEIF (strsglob(ie) >= 0)
THEN
913 IF (jjhbe == 2) jjhbe = 1
914 id_solid_sigi(i) = id_elem
918 1 ixs ,igeo ,itris ,isolnodd00 ,ie ,
919 2 npt ,nlay ,isolnod ,jjhbe ,igtyp ,
923 IF ( (isolnod == 8 .AND. (jjhbe==1.OR.jjhbe==2.OR.jjhbe==12.OR.jjhbe==24)
924 . .AND. igtyp /= 43) .OR.(isolnod == 4 .AND. isrot == 0)
925 . .OR.(isolnod == 4 .AND. isrot == 3).OR.jjhbe==5)
THEN
927 IF(isolnod == 8 .AND. jjhbe == 12)
THEN
961 sigsp(iis+1,i) = s(1)
962 sigsp(iis+2,i) = s(2)
963 sigsp(iis+3,i) = s(3)
964 sigsp(iis+4,i) = s(4)
965 sigsp(iis+5,i) = s(5)
966 sigsp(iis+6,i) = s(6)
969 sigsp(iis+7,i) = epsp
988 sigi(9,i) = tmpval1(1)
989 ELSEIF(npt == 1)
THEN
990 sigi(8,i) = tmpval2(1)
991 sigi(9,i) = tmpval1(1)
993 sigsp(3,i) = tmpval1(1)
994 sigsp(4,i) = tmpval2(1)
1011 sigi(10,i)= tmpval9(1)
1023 sigsp(iis+1,i) = s(1)
1024 sigsp(iis+2,i) = s(2)
1025 sigsp(iis+3,i) = s(3)
1030 sigsp(iis+1,i) = s(1)
1031 sigsp(iis+2,i) = s(2)
1032 sigsp(iis+3,i) = s(3)
1033 sigsp(iis+4,i) = s(4)
1034 sigsp(iis+5,i) = s(5)
1035 sigsp(iis+6,i) = s(6)
1037 sigsp(iis+7,i) = epsp
1039 sigi(l,i) = sigi(l,i) + fourth*sigsp(iis+l,i)
1041 sigi(10,i)= sigi(10,i) + fourth*sigsp(iis+7,i)
1049 IF (isolnod == 16)
THEN
1051 SIZE = nptt*nptr*nlay
1068 k = jr + ( (jl-1) + (jt-1)*nlay )*nptr
1080 sigsp(iis+1,i) = s(1)
1081 sigsp(iis+2,i) = s(2)
1082 sigsp(iis+3,i) = s(3)
1083 sigsp(iis+4,i) = s(4)
1084 sigsp(iis+5,i) = s(5)
1085 sigsp(iis+6,i) = s(6)
1089 sigsp(iis+7,i) = epsp
1090 sigsp(iis+8,i) = ein
1096 ELSEIF (isolnod == 20)
THEN
1098 SIZE = nptt*npts*nptr
1101 CALL HM_GET_FLOAT_ARRAY('sigma3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1102 CALL HM_GET_FLOAT_ARRAY('sigma12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1103 CALL HM_GET_FLOAT_ARRAY('sigma23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1104 CALL HM_GET_FLOAT_ARRAY('sigma31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1105 CALL HM_GET_FLOAT_ARRAY('epsilon_p
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1106 CALL HM_GET_FLOAT_ARRAY('e_int
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1107 CALL HM_GET_FLOAT_ARRAY('rho
' ,TMPVAL9,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1115 K = JR + ( (JS-1) + (JT-1)*NPTS )*NPTR
1127 SIGSP(IIS+1,I) = S(1)
1128 SIGSP(IIS+2,I) = S(2)
1129 SIGSP(IIS+3,I) = S(3)
1130 SIGSP(IIS+4,I) = S(4)
1131 SIGSP(IIS+5,I) = S(5)
1132 SIGSP(IIS+6,I) = S(6)
1136 SIGSP(IIS+7,I) = EPSP
1137 SIGSP(IIS+8,I) = EIN
1139 ENDDO ! DO JT=1,NPTT
1140 ENDDO ! DO JS=1,NPTS
1141 ENDDO ! DO JR=1,NPTR
1145 IF (IGTYP == 22) THEN
1147 SIZE = NPTR*NPTS*NPTT
1148 CALL HM_GET_FLOAT_ARRAY('sigma1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1149 CALL HM_GET_FLOAT_ARRAY('sigma2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1150 CALL HM_GET_FLOAT_ARRAY('sigma3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1151 CALL HM_GET_FLOAT_ARRAY('sigma12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1152 CALL HM_GET_FLOAT_ARRAY('sigma23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1153 CALL HM_GET_FLOAT_ARRAY('sigma31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1154 CALL HM_GET_FLOAT_ARRAY('epsilon_p
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1155 CALL HM_GET_FLOAT_ARRAY('e_int
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1156 CALL HM_GET_FLOAT_ARRAY('rho
' ,TMPVAL9,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1164 K = JR + ( (JS-1) + (JT-1)*NPTS )*NPTR
1176 SIGSP(IIS+1,I) = S(1)
1177 SIGSP(IIS+2,I) = S(2)
1178 SIGSP(IIS+3,I) = S(3)
1179 SIGSP(IIS+4,I) = S(4)
1180 SIGSP(IIS+5,I) = S(5)
1181 SIGSP(IIS+6,I) = S(6)
1185 SIGSP(IIS+7,I) = EPSP
1186 SIGSP(IIS+8,I) = EIN
1188 ENDDO ! DO JT=1,NPTT
1189 ENDDO ! DO JS=1,NPTS
1190 ENDDO ! DO JR=1,NPTR
1192 ELSE ! (IGTYP /= 22)
1195 CALL HM_GET_FLOAT_ARRAY('sigma1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1196 CALL HM_GET_FLOAT_ARRAY('sigma2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1197 CALL HM_GET_FLOAT_ARRAY('sigma3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1198 CALL HM_GET_FLOAT_ARRAY('sigma12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1199 CALL HM_GET_FLOAT_ARRAY('sigma23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1200 CALL HM_GET_FLOAT_ARRAY('sigma31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1201 CALL HM_GET_FLOAT_ARRAY('epsilon_p
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1202 CALL HM_GET_FLOAT_ARRAY('e_int
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1203 CALL HM_GET_FLOAT_ARRAY('rho
' ,TMPVAL9,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1214 SIGSP(IIS+1,I) = S(1)
1215 SIGSP(IIS+2,I) = S(2)
1216 SIGSP(IIS+3,I) = S(3)
1217 SIGSP(IIS+4,I) = S(4)
1218 SIGSP(IIS+5,I) = S(5)
1219 SIGSP(IIS+6,I) = S(6)
1223 SIGSP(IIS+7,I) = EPSP
1224 SIGSP(IIS+8,I) = EIN
1227 ENDIF ! IF (IGTYP == 22)
1228 ENDIF ! IF (ISOLNOD == 16)
1229.AND.
ENDIF ! IF ( (ISOLNOD == 8 ...)
1230 ENDIF ! IF (IE == 0)
1234 DO K = 2,IGRBRIC(JGBR)%NENTITY
1235 IE = IGRBRIC(JGBR)%ENTITY(K)
1236 CALL LEC_INISTATE_D00_BRICK_CHECK (
1237 1 IXS ,IGEO ,ITRIS ,ISOLNODD00 ,IE ,
1238 2 NPT ,NLAY ,ISOLNOD ,JJHBE ,IGTYP ,
1240!! IF (BRIGLOB == 1) STRSGLOB(IE)=1
1241 IF (STRSGLOB(IE) >= 0) CYCLE
1244 ID_SOLID_SIGI(I) = IXS(11,IE)
1246 SIGSP(L,I) = SIGSP(L,I1)
1249 SIGI(L,I) = SIGI(L,I1)
1251 ENDDO ! DO K = 2,IGRBRIC(JGBR)%NENTITY
1252 ENDIF ! IF (IGBR > 0)
1254 ENDDO ! DO J=1,NB_ELEMENTS
1259 CALL HM_GET_INTV('inibri_stra_f_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1261 KEYWORD='/inibri/stra_f
'
1265 ! Reading --- ID_ELEM, .... ---
1266 CALL HM_GET_INT_ARRAY_INDEX('brick_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
1267 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NPT,J,IS_AVAILABLE,LSUBMODEL)
1268 CALL HM_GET_INT_ARRAY_INDEX('isolnod
' ,ISOLNOD,J,IS_AVAILABLE,LSUBMODEL)
1269 CALL HM_GET_INT_ARRAY_INDEX('isolid
' ,JJHBE,J,IS_AVAILABLE,LSUBMODEL)
1270 CALL HM_GET_INT_ARRAY_INDEX('nptr
' ,NPTR,J,IS_AVAILABLE,LSUBMODEL)
1271 CALL HM_GET_INT_ARRAY_INDEX('npts
' ,NPTS,J,IS_AVAILABLE,LSUBMODEL)
1272 CALL HM_GET_INT_ARRAY_INDEX('nptt
' ,NPTT,J,IS_AVAILABLE,LSUBMODEL)
1273 CALL HM_GET_INT_ARRAY_INDEX('nlay
' ,NLAY,J,IS_AVAILABLE,LSUBMODEL)
1276 IF (JJHBE == 2) JJHBE = 1
1277 ID_SOLID_SIGI(I) = ID_ELEM
1279! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISOLM,NUMELS)
1280! IE = MAP_TABLES%ISOLM(ELT,2)
1282 IE=UEL2SYS(ID_ELEM,KSYSUSRS,NUMELS)
1288 ! Solid was not found. Issue a Warning & Skip.
1289 NONEXIST = NONEXIST+1
1290 ELSEIF (STRAGLOB(IE)>=0) THEN
1292 CALL LEC_INISTATE_D00_BRICK_CHECK (
1293 1 IXS ,IGEO ,ITRIS ,ISOLNODD00 ,IE ,
1294 2 NPT ,NLAY ,ISOLNOD ,JJHBE ,IGTYP ,
1298 IF ( ISOLNOD == 16 ) THEN
1300 SIZE = NPTT*NPTR*NLAY
1301 CALL HM_GET_FLOAT_ARRAY('epsilon_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1302 CALL HM_GET_FLOAT_ARRAY('epsilon_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1303 CALL HM_GET_FLOAT_ARRAY('epsilon_3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1304 CALL HM_GET_FLOAT_ARRAY('epsilon_12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1305 CALL HM_GET_FLOAT_ARRAY('epsilon_23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1306 CALL HM_GET_FLOAT_ARRAY('epsilon_31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1314 K = JR + ( (JL-1) + (JT-1)*NLAY )*NPTR
1315 IIS= NVSOLID1 + (K-1)*6
1326 SIGSP(IIS+1,I) = S(1)
1327 SIGSP(IIS+2,I) = S(2)
1328 SIGSP(IIS+3,I) = S(3)
1329 SIGSP(IIS+4,I) = S(4)
1330 SIGSP(IIS+5,I) = S(5)
1331 SIGSP(IIS+6,I) = S(6)
1332 ENDDO ! DO JL=1,NLAY
1333 ENDDO ! DO JR=1,NPTR
1334 ENDDO ! DO JT=1,NPTT
1336 ELSEIF ( ISOLNOD == 20 ) THEN
1338 SIZE = NPTT*NPTS*NPTR
1339 CALL HM_GET_FLOAT_ARRAY('epsilon_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1340 CALL HM_GET_FLOAT_ARRAY('epsilon_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1341 CALL HM_GET_FLOAT_ARRAY('epsilon_3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1342 CALL HM_GET_FLOAT_ARRAY('epsilon_12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1343 CALL HM_GET_FLOAT_ARRAY('epsilon_23' ,tmpval5,
SIZE,j,is_available,lsubmodel,unitab)
1352 k = jr + ( (js-1) + (jt-1)*npts )*nptr
1353 iis= nvsolid1 + (k-1)*6
1364 sigsp(iis+1,i) = s(1)
1365 sigsp(iis+2,i) = s(2)
1366 sigsp(iis+3,i) = s(3)
1367 sigsp(iis+4,i) = s(4)
1368 sigsp(iis+5,i) = s(5)
1369 sigsp(iis+6,i) = s(6)
1374 ELSEIF ((igtyp == 21 .OR. igtyp == 22) .AND. jjhbe == 14)
THEN
1376 SIZE = nptr*npts*nptt
1390 k = jr + ( (js-1) + (jt-1)*npts )*nptr
1391 iis= nvsolid1 + (k-1)*6
1402 sigsp(iis+1,i) = s(1)
1403 sigsp(iis+2,i) = s(2)
1404 sigsp(iis+3,i) = s(3)
1405 sigsp(iis+4,i) = s(4)
1406 sigsp(iis+5,i) = s(5)
1407 sigsp(iis+6,i) = s(6)
1423 IIS= NVSOLID1 + (K-1)*6
1431 SIGSP(IIS+1,I) =S(1)
1432 SIGSP(IIS+2,I) =S(2)
1433 SIGSP(IIS+3,I) =S(3)
1434 SIGSP(IIS+4,I) =S(4)
1435 SIGSP(IIS+5,I) =S(5)
1436 SIGSP(IIS+6,I) =S(6)
1440 ENDIF ! IF ( ISOLNOD == 16 )
1441 ENDIF ! IF (IE == 0)
1442 ENDDO ! DO J=1,NB_ELEMENTS
1445 CASE ( 'stra_fglo
' )
1447 CALL HM_GET_INTV('inibri_stra_fglo_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1449 KEYWORD='/inibri/stra_f
'
1454 ! Reading --- ID_ELEM, .... ---
1455 CALL HM_GET_INT_ARRAY_INDEX('brick_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
1456 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NPT,J,IS_AVAILABLE,LSUBMODEL)
1457 CALL HM_GET_INT_ARRAY_INDEX('isolnod
' ,ISOLNOD,J,IS_AVAILABLE,LSUBMODEL)
1458 CALL HM_GET_INT_ARRAY_INDEX('isolid
' ,JJHBE,J,IS_AVAILABLE,LSUBMODEL)
1459 CALL HM_GET_INT_ARRAY_INDEX('nptr
' ,NPTR,J,IS_AVAILABLE,LSUBMODEL)
1460 CALL HM_GET_INT_ARRAY_INDEX('npts
' ,NPTS,J,IS_AVAILABLE,LSUBMODEL)
1461 CALL HM_GET_INT_ARRAY_INDEX('nptt
' ,NPTT,J,IS_AVAILABLE,LSUBMODEL)
1462 CALL HM_GET_INT_ARRAY_INDEX('nlay
' ,NLAY,J,IS_AVAILABLE,LSUBMODEL)
1465 IF (JJHBE == 2) JJHBE = 1
1466 ID_SOLID_SIGI(I) = ID_ELEM
1468! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISOLM,NUMELS)
1469! IE = MAP_TABLES%ISOLM(ELT,2)
1471 IE=UEL2SYS(ID_ELEM,KSYSUSRS,NUMELS)
1478 ! Solid was not found. Issue a Warning & Skip.
1479 NONEXIST = NONEXIST+1
1480 ELSEIF (STRAGLOB(IE)>=0) THEN
1482 CALL LEC_INISTATE_D00_BRICK_CHECK (
1483 1 IXS ,IGEO ,ITRIS ,ISOLNODD00 ,IE ,
1484 2 NPT ,NLAY ,ISOLNOD ,JJHBE ,IGTYP ,
1486 IF (BRIGLOB == 1) STRAGLOB(IE)=1
1488 IF ( ISOLNOD == 16 ) THEN
1490 SIZE = NPTT*NPTR*NLAY
1491 CALL HM_GET_FLOAT_ARRAY('epsilon_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1492 CALL HM_GET_FLOAT_ARRAY('epsilon_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1493 CALL HM_GET_FLOAT_ARRAY('epsilon_3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1494 CALL HM_GET_FLOAT_ARRAY('epsilon_12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1495 CALL HM_GET_FLOAT_ARRAY('epsilon_23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1496 CALL HM_GET_FLOAT_ARRAY('epsilon_31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1504 K = JR + ( (JL-1) + (JT-1)*NLAY )*NPTR
1505 IIS= NVSOLID1 + (K-1)*6
1515 IF (SUB_ID /= 0) CALL SUBROTTENS(S,RTRANS,SUB_ID,LSUBMODEL)
1516 SIGSP(IIS+1,I) = S(1)
1517 SIGSP(IIS+2,I) = S(2)
1518 SIGSP(IIS+3,I) = S(3)
1519 SIGSP(IIS+4,I) = S(4)
1520 SIGSP(IIS+5,I) = S(5)
1521 SIGSP(IIS+6,I) = S(6)
1522 ENDDO ! DO JL=1,NLAY
1523 ENDDO ! DO JR=1,NPTR
1524 ENDDO ! DO JT=1,NPTT
1526 ELSEIF ( ISOLNOD == 20 ) THEN
1528 SIZE = NPTT*NPTS*NPTR
1529 CALL HM_GET_FLOAT_ARRAY('epsilon_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1530 CALL HM_GET_FLOAT_ARRAY('epsilon_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1531 CALL HM_GET_FLOAT_ARRAY('epsilon_3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1532 CALL HM_GET_FLOAT_ARRAY('epsilon_12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1533 CALL HM_GET_FLOAT_ARRAY('epsilon_23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1534 CALL HM_GET_FLOAT_ARRAY('epsilon_31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1542 K = JR + ( (JS-1) + (JT-1)*NPTS )*NPTR
1543 IIS= NVSOLID1 + (K-1)*6
1553 IF (SUB_ID /= 0) CALL SUBROTTENS(S,RTRANS,SUB_ID,LSUBMODEL)
1554 SIGSP(IIS+1,I) = S(1)
1555 SIGSP(IIS+2,I) = S(2)
1556 SIGSP(IIS+3,I) = S(3)
1557 SIGSP(IIS+4,I) = S(4)
1558 SIGSP(IIS+5,I) = S(5)
1559 SIGSP(IIS+6,I) = S(6)
1560 ENDDO ! DO JR=1,NPTR
1561 ENDDO ! DO JS=1,NPTS
1562 ENDDO ! DO JT=1,NPTT
1564.OR..AND.
ELSEIF ((IGTYP == 21 IGTYP == 22) JJHBE == 14) THEN
1566 SIZE = NPTR*NPTS*NPTT
1567 CALL HM_GET_FLOAT_ARRAY('epsilon_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1568 CALL HM_GET_FLOAT_ARRAY('epsilon_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1569 CALL HM_GET_FLOAT_ARRAY('epsilon_3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1570 CALL HM_GET_FLOAT_ARRAY('epsilon_12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1571 CALL HM_GET_FLOAT_ARRAY('epsilon_23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1572 CALL HM_GET_FLOAT_ARRAY('epsilon_31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1579 K = JR + ( (JS-1) + (JT-1)*NPTS )*NPTR
1580 IIS= NVSOLID1 + (K-1)*6
1590 IF (SUB_ID /= 0) CALL SUBROTTENS(S,RTRANS,SUB_ID,LSUBMODEL)
1591 SIGSP(IIS+1,I) = S(1)
1592 SIGSP(IIS+2,I) = S(2)
1593 SIGSP(IIS+3,I) = S(3)
1594 SIGSP(IIS+4,I) = S(4)
1595 SIGSP(IIS+5,I) = S(5)
1596 SIGSP(IIS+6,I) = S(6)
1597 ENDDO ! DO JT=1,NPTT
1598 ENDDO ! DO JS=1,NPTS
1599 ENDDO ! DO JR=1,NPTR
1604 CALL HM_GET_FLOAT_ARRAY('epsilon_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1605 CALL HM_GET_FLOAT_ARRAY('epsilon_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1606 CALL HM_GET_FLOAT_ARRAY('epsilon_3
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1607 CALL HM_GET_FLOAT_ARRAY('epsilon_12
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1608 CALL HM_GET_FLOAT_ARRAY('epsilon_23
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1609 CALL HM_GET_FLOAT_ARRAY('epsilon_31
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1612 IIS= NVSOLID1 + (K-1)*6
1619 IF (SUB_ID /= 0) CALL SUBROTTENS(S,RTRANS,SUB_ID,LSUBMODEL)
1620 SIGSP(IIS+1,I) =S(1)
1621 SIGSP(IIS+2,I) =S(2)
1622 SIGSP(IIS+3,I) =S(3)
1623 SIGSP(IIS+4,I) =S(4)
1624 SIGSP(IIS+5,I) =S(5)
1625 SIGSP(IIS+6,I) =S(6)
1629 ENDIF ! IF ( ISOLNOD == 16 )
1630 ENDIF ! IF (IE == 0)
1631 ENDDO ! DO J=1,NB_ELEMENTS
1636 CALL HM_GET_INTV('inibri_fail_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1639 CALL HM_GET_INT_ARRAY_INDEX('brick_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
1640 CALL HM_GET_INT_ARRAY_INDEX('nlay
',NLAY,J,IS_AVAILABLE,LSUBMODEL)
1641 CALL HM_GET_INT_ARRAY_INDEX('nptr
',NPTR,J,IS_AVAILABLE,LSUBMODEL)
1642 CALL HM_GET_INT_ARRAY_INDEX('npts
',NPTS,J,IS_AVAILABLE,LSUBMODEL)
1643 CALL HM_GET_INT_ARRAY_INDEX('nptt
',NPTT,J,IS_AVAILABLE,LSUBMODEL)
1644 CALL HM_GET_INT_ARRAY_INDEX('lay_id
',ILAY,J,IS_AVAILABLE,LSUBMODEL)
1645 CALL HM_GET_INT_ARRAY_INDEX('fail_id
',IFAIL,J,IS_AVAILABLE,LSUBMODEL)
1646 CALL HM_GET_INT_ARRAY_INDEX('ifail_typ
',IRUPT_TYP,J,IS_AVAILABLE,LSUBMODEL)
1647 CALL HM_GET_INT_ARRAY_INDEX('nvar',NVAR_RUPT,J,IS_AVAILABLE,LSUBMODEL)
1648 CALL HM_GET_INT_ARRAY_INDEX('mat_id
',IMAT,J,IS_AVAILABLE,LSUBMODEL)
1650 CALL HM_GET_INT_ARRAY_INDEX('num_lines
',NUM_LINES,J,IS_AVAILABLE,LSUBMODEL)
1652! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISOLM,NUMELS)
1653! IE = MAP_TABLES%ISOLM(ELT,2)
1655 IE=UEL2SYS(ID_ELEM,KSYSUSRS,NUMELS)
1657 NVMAX = NVSOLID4 /(NPTR*NPTS*NPTT*NLAY*5)
1659 IF(ID_ELEM /= NEM1) I=I+1
1664 IF(IPM(1,K) == IMAT)THEN
1672 CALL ANCMSG(MSGID=1033,
1676 . C1='material law
',
1677 . C2='/inibri/fail
')
1679 ID_SOLID_SIGI(I) = ID_ELEM
1682 ! Solid was not found. Issue a Warning & Skip.
1683 NONEXIST = NONEXIST+1
1687 NFAIL(K) = MAT_PARAM(IMAT)%FAIL(K)%FAIL_ID
1688.AND.
IF (IFAIL == NFAIL(K)
1689 . IRUPT_TYP == MAT_PARAM(IMAT)%FAIL(K)%IRUPT) THEN
1697 CALL ANCMSG(MSGID=1033,
1701 . C1='failure criteria
',
1702 . C2='/inibri/fail
')
1703 ENDIF ! IF (IOK == 0)
1705 IIS= NVSOLID1 + NVSOLID2 + 4 + NUSOLID + NVSOLID3
1707 NMAX_FAIL = NUM_LINES*NVAR_RUPT
1708 CALL HM_GET_FLOAT_ARRAY('v
' ,TMPVAL,NMAX_FAIL,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1712 L = NVAR_RUPT*(JJ-1) + K
1713 SIGSP(IIS+L+(IFAIL-1)*NLAY*NPTR*NPTS*NPTT*NVMAX+
1714 . (ILAY-1)*NVMAX*NPTR*NPTS*NPTT,I) = TMPVAL(L)
1715 ENDDO ! DO K=1,NVAR_RUPT
1716 ENDDO ! DO JJ=1,NUM_LINE
1718 ENDIF ! IF (IE == 0)
1719 ENDDO ! DO J=1,NB_ELEMENTS
1721 CASE ( 'scale_yld
' )
1723 CALL HM_GET_INTV('inibri_scale_yld_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1727 CALL HM_GET_INT_ARRAY_INDEX('brick_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
1728 CALL HM_GET_INT_ARRAY_INDEX('nptr
',NPTR,J,IS_AVAILABLE,LSUBMODEL)
1729 CALL HM_GET_INT_ARRAY_INDEX('npts
',NPTS,J,IS_AVAILABLE,LSUBMODEL)
1730 CALL HM_GET_INT_ARRAY_INDEX('nptt
',NPTT,J,IS_AVAILABLE,LSUBMODEL)
1731 CALL HM_GET_INT_ARRAY_INDEX('nlay
',NLAY,J,IS_AVAILABLE,LSUBMODEL)
1733 CALL HM_GET_INT_ARRAY_INDEX('num_lines
',NUM_LINES,J,IS_AVAILABLE,LSUBMODEL)
1735! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISOLM,NUMELS)
1736! IE = MAP_TABLES%ISOLM(ELT,2)
1738 IE=UEL2SYS(ID_ELEM,KSYSUSRS,NUMELS)
1741 IF (NLAY == 0) NLAY = 1
1742 SIGI( 7,I) = ID_ELEM
1743 ID_SOLID_SIGI(I) = ID_ELEM
1744 IIS = NVSOLID1 + NVSOLID2 + NVSOLID3 + NUSOLID + 4 + NVSOLID4
1745 SIGSP(IIS + 7,I) = ID_ELEM
1747 SIGSP(IIS +1 , I) = NPTR
1748 SIGSP(IIS +2 , I) = NPTS
1749 SIGSP(IIS +3 , I) = NPTT
1750 SIGSP(IIS +4 , I) = NLAY
1753 ! Solid was not found. Issue a Warning & Skip.
1754 NONEXIST = NONEXIST+1
1756 IIS = NVSOLID1 + NVSOLID2 + NVSOLID3 + NUSOLID + 4 + NVSOLID4 + 7
1758 SIZE = NLAY*NPTT*NPTS*NPTR
1759 CALL HM_GET_FLOAT_ARRAY('alpha_lkji
' ,TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1765 JJ = NPTR*NPTS*NPTT*(ILAY-1)+ NPTR*NPTS*(IT-1)+NPTR*(IS-1)+IR
1766 SIGSP(IIS+ JJ ,I) = TMPVAL(JJ)
1767 ENDDO ! DO IR=1,NPTR
1768 ENDDO ! DO IS=1,NPTS
1769 ENDDO ! DO IT=1,NPTT
1770 ENDDO ! DO ILAY = 1,NLAY
1771!! IIS = IIS + NPTR*NPTS*NPTT*NLAY
1773 ENDIF ! IF (IE == 0)
1774 ENDDO ! DO J=1,NB_ELEMENTS
1778 CALL HM_GET_INTV('inibri_ortho_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1780 KEYWORD='/inibri/ortho
'
1784 CALL HM_GET_INT_ARRAY_INDEX('brick_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
1785 CALL HM_GET_INT_ARRAY_INDEX('nb_layer
' ,NLAY,J,IS_AVAILABLE,LSUBMODEL)
1786 CALL HM_GET_INT_ARRAY_INDEX('isolnod
' ,ISOLNOD,J,IS_AVAILABLE,LSUBMODEL)
1787 CALL HM_GET_INT_ARRAY_INDEX('prop_type
',IGTYP,J,IS_AVAILABLE,LSUBMODEL)
1788 CALL HM_GET_INT_ARRAY_INDEX('isolid
' ,JJHBE,J,IS_AVAILABLE,LSUBMODEL)
1791 ID_SOLID_SIGI(I) = ID_ELEM
1792 IF (JJHBE == 2) JJHBE = 1
1794! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISOLM,NUMELS)
1795! IE = MAP_TABLES%ISOLM(ELT,2)
1797 IE=UEL2SYS(ID_ELEM,KSYSUSRS,NUMELS)
1801 ! Solid was not found. Issue a Warning & Skip.
1802 NONEXIST = NONEXIST+1
1804 CALL LEC_INISTATE_D00_BRICK_CHECK (
1805 1 IXS ,IGEO ,ITRIS ,ISOLNODD00 ,IE ,
1806 2 NPT ,NLAY ,ISOLNOD ,JJHBE ,IGTYP ,
1809 IIS= NVSOLID1 + NVSOLID2 + 4 + NUSOLID
1810!! IF(KEY2(8:10)=='glo.OR.
'
1811.AND.
!! . (IGTYP /= 21 IGTYP /= 22)) THEN
1812.AND.
IF (IGTYP /= 21 IGTYP /= 22) THEN
1815 CALL HM_GET_FLOAT_ARRAY('x1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1816 CALL HM_GET_FLOAT_ARRAY('y1
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1817 CALL HM_GET_FLOAT_ARRAY('z1
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1818 CALL HM_GET_FLOAT_ARRAY('x2
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1819 CALL HM_GET_FLOAT_ARRAY('y2
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1820 CALL HM_GET_FLOAT_ARRAY('z3
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1823 SIGSP(IIS+1,I) = TMPVAL1(K)
1824 SIGSP(IIS+2,I) = TMPVAL2(K)
1825 SIGSP(IIS+3,I) = TMPVAL3(K)
1826 SIGSP(IIS+4,I) = TMPVAL4(K)
1827 SIGSP(IIS+5,I) = TMPVAL5(K)
1828 SIGSP(IIS+6,I) = TMPVAL6(K)
1833 CALL HM_GET_FLOAT_ARRAY('cos_alpha
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1834 CALL HM_GET_FLOAT_ARRAY('sin_alpha
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1837 SIGSP(IIS+1,I) = TMPVAL1(K)
1838 SIGSP(IIS+2,I) = TMPVAL2(K)
1841.AND.
ENDIF ! IF (IGTYP /= 21 IGTYP /= 22)
1843 ENDIF ! IF (IE == 0)
1844 ENDDO ! DO J=1,NB_ELEMENTS
1849 CALL HM_GET_INTV('inibri_eref_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
1851 KEYWORD='/inibri/eref
'
1854 CALL HM_GET_INT_ARRAY_INDEX('brick_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
1855 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NPT,J,IS_AVAILABLE,LSUBMODEL)
1856 CALL HM_GET_INT_ARRAY_INDEX('isolnod
' ,ISOLNOD,J,IS_AVAILABLE,LSUBMODEL)
1857 CALL HM_GET_INT_ARRAY_INDEX('isolid
' ,JJHBE,J,IS_AVAILABLE,LSUBMODEL)
1858 CALL HM_GET_INT_ARRAY_INDEX('ismstr
' ,ISMSTR,J,IS_AVAILABLE,LSUBMODEL)
1859 CALL HM_GET_INT_ARRAY_INDEX('nsrot
' ,NSROT,J,IS_AVAILABLE,LSUBMODEL)
1862 IF (JJHBE == 2) JJHBE = 1
1863 ID_SOLID_SIGI(I) = ID_ELEM
1865! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISOLM,NUMELS)
1866! IE = MAP_TABLES%ISOLM(ELT,2)
1868 IE=UEL2SYS(ID_ELEM,KSYSUSRS,NUMELS)
1872 ! Solid was not found. Issue a Warning & Skip.
1873 NONEXIST = NONEXIST+1
1875 CALL LEC_INISTATE_D00_BRICK_CHECK (
1876 1 IXS ,IGEO ,ITRIS ,ISOLNODD00 ,IE ,
1877 2 NPT ,NLAY ,ISOLNOD ,JJHBE ,IGTYP ,
1883 ISMRAD = IPARG(9,NG)
1884.OR..AND.
IF (ISMRAD/=ISMSTR(ISMSTR/=1ISMSTR<10)) THEN
1885 CALL ANCMSG(MSGID=695,
1889 . C1='small strain formulation
',
1890 . C2='solid property
',
1894 IIS= NVSOLID1 + NVSOLID2 + NVSOLID3 + NUSOLID+4 + NVSOLID4 +
1898 CALL HM_GET_FLOAT_ARRAY('xref
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1899 CALL HM_GET_FLOAT_ARRAY('yref
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1900 CALL HM_GET_FLOAT_ARRAY('zref
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1906.AND..OR.
IF(SUB_ID /= 0 (ISMSTR==1ISMSTR==11))
1907 . CALL SUBROTVECT (S(1),S(2),S(3),RTRANS,SUB_ID,LSUBMODEL)
1908 SIGSP(IIS+(K-1)*3+1,I) =S(1)
1909 SIGSP(IIS+(K-1)*3+2,I) =S(2)
1910 SIGSP(IIS+(K-1)*3+3,I) =S(3)
1911 ENDDO ! DO J=1,ISOLNOD
1913 CALL HM_GET_FLOAT_ARRAY('rx
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1914 CALL HM_GET_FLOAT_ARRAY('ry
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1915 CALL HM_GET_FLOAT_ARRAY('rz
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
1917 IIS = IIS + 3*ISOLNOD
1922.AND..OR.
IF(SUB_ID /= 0 (ISMSTR==1ISMSTR==11))
1923 . CALL SUBROTVECT (S(1),S(2),S(3),RTRANS,SUB_ID,LSUBMODEL)
1924 SIGSP(IIS+(K-1)*3+1,I) =S(1)
1925 SIGSP(IIS+(K-1)*3+2,I) =S(2)
1926 SIGSP(IIS+(K-1)*3+3,I) =S(3)
1930 ENDIF ! IF (IE == 0)
1931 ENDDO ! DO J=1,NB_ELEMENTS
1936 END SELECT ! SELECT CASE(KEY)
1938 ENDDO ! DO INI=1,NB_INIBRI
1939 ENDIF ! IF ( NB_INIBRI > 0 )
1942!-----------------------------------------
1944!-----------------------------------------
1948 CALL HM_OPTION_COUNT('/inishe
', NB_INISHE)
1950 IF ( NB_INISHE > 0 ) THEN
1952 ! Start reading /INISHE card
1953 CALL HM_OPTION_START('/inishe
')
1955! to be replaced by --- MAP_TABLES%ISH4NM ---
1956 IF (KTRIELC == 0) THEN
1959 ITRI(IE) = IXC(NIXC,IE)
1961 CALL MY_ORDERS(0,WORK,ITRI,INDEX,NUMELC,1)
1964 KSYSUSR(J) =IXC(NIXC,IE)
1965 KSYSUSR(NUMELC+J)=IE
1972 CALL HM_OPTION_READ_KEY(LSUBMODEL,
1974 . SUBMODEL_INDEX = SUB_INDEX,
1975 . SUBMODEL_ID = SUB_ID,
1979 IF (KEY2 /= ' ') GLOB = .TRUE.
1982 DO IUNIT=1,UNITAB%NUNITS
1983 IF (UNITAB%UNIT_ID(IUNIT) == UID) THEN
1989.AND.
IF (UID /= 0IFLAGUNIT == 0) THEN
1990 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,
1991 . I2=UID, I1=SUB_ID, C1='inishe
',
1996 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
2002 CALL HM_GET_INTV('inishe_epsp_f_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
2005 ! Reading --- ID_ELEM, NIP, NPG, THK ---
2006 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
2007 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
2008 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
2009 CALL HM_GET_FLOAT_ARRAY_INDEX('thick
',THK,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2011! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH4NM,NUMELC)
2012! IE = MAP_TABLES%ISH4NM(ELT,2)
2014 IE=UEL2SYS(ID_ELEM,KSYSUSR,NUMELC)
2017 ! Shell was not found. Issue a Warning & Skip.
2018 NONEXIST = NONEXIST+1
2021 ! check is SHELL is QEPH
2024.OR.
IF (IHBE==12 IHBE==24) THEN
2029 IF (NPGTMP /= NPG) THEN
2030 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1,IG),LTITR)
2031 CALL ANCMSG(MSGID=26,
2040 ID_SIGSH(I) = ID_ELEM
2041 SIGSH(1,I) = ID_ELEM
2044 SIGSH(NVSHELL - 1,I) = ONE
2048 SIZE = NIP*MAX(NPG,1)
2049 CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2057 SIGSH(PT+(K-1)*6+5,I) = TMPVAL(K+K0)
2062 ENDDO ! DO WHILE(JJ > 0)
2063!--------------------
2064 ELSEIF (NPG > 1) THEN
2065 SIGSH(NVSHELL,I) = NPG
2070 CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2074 SIGSH(PT+(K-1)*9+5,I) = TMPVAL(K)
2079 CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2087 SIGSH(PT+(K-1)*6+5,I) = TMPVAL(K+K0)
2093 END DO ! DO WHILE(JJ > 0)
2094!---------------------
2095 END IF ! IF (NIP == 0)
2097 ENDIF ! IF (IE /= 0)
2098 ENDDO ! DO I=1,NB_ELEMENTS
2104! --- 'strs_f/glob
' ---
2107 CALL HM_GET_INTV('inishe_strs_f_glob_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
2110 ! Reading --- ID_ELEM, NIP, NPG, THK ---
2111 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
2112 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
2113 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
2114 CALL HM_GET_FLOAT_ARRAY_INDEX('thick
',THK,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2116! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH4NM,NUMELC)
2117! IE = MAP_TABLES%ISH4NM(ELT,2)
2119 IE=UEL2SYS(ID_ELEM,KSYSUSR,NUMELC)
2122 ! Shell was not found. Issue a Warning & Skip.
2123 NONEXIST = NONEXIST+1
2126 ! check is SHELL is QEPH
2129.OR.
IF (IHBE==12 IHBE==24) THEN
2134 IF (NPGTMP /= NPG) THEN
2135 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1,IG),LTITR)
2136 CALL ANCMSG(MSGID=26,
2144 ! Reading CARD_1 --- EM,EB,H1,H2,H3 ---
2145 CALL HM_GET_FLOAT_ARRAY_INDEX('em
',EM,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2146 CALL HM_GET_FLOAT_ARRAY_INDEX('eb
',EB,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2147 CALL HM_GET_FLOAT_ARRAY_INDEX('h1
',H1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2148 CALL HM_GET_FLOAT_ARRAY_INDEX('h2
',H2,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2149 CALL HM_GET_FLOAT_ARRAY_INDEX('h3
',H3,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2152 SIGSH(1,I) = ID_ELEM
2153 ID_SIGSH(I) = ID_ELEM
2159 SIGSH(NVSHELL - 1 , I) = ONE
2161.OR.
IF (NPG == 0 NPG == 1) THEN
2168 ! Reading CARD_2 --- sigma_X, sigma_Y, sigma_Z ---
2169 CALL HM_GET_FLOAT_ARRAY('sigma_x
',SIGSH(22,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2170 CALL HM_GET_FLOAT_ARRAY('sigma_y
',SIGSH(23,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2171 CALL HM_GET_FLOAT_ARRAY('sigma_z
',SIGSH(18,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2172 ! Reading CARD_3 --- sigma_XY, sigma_YZ, sigma_ZX ---
2173 CALL HM_GET_FLOAT_ARRAY('sigma_xy
',SIGSH(24,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2174 CALL HM_GET_FLOAT_ARRAY('sigma_yz
',SIGSH(25,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2175 CALL HM_GET_FLOAT_ARRAY('sigma_zx
',SIGSH(26,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2177 ! Reading CARD_4 --- sigma_bX, sigma_bY, sigma_bZ ---
2178 CALL HM_GET_FLOAT_ARRAY('sigma_bx
',SIGSH(28,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2179 CALL HM_GET_FLOAT_ARRAY('sigma_by
',SIGSH(29,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2180 CALL HM_GET_FLOAT_ARRAY('sigma_bz
',SIGSH(19,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2181 ! Reading CARD_5 --- sigma_bXY, sigma_bYZ, sigma_bZX, eps_p ---
2182 CALL HM_GET_FLOAT_ARRAY('sigma_bxy
',SIGSH(30,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2183 CALL HM_GET_FLOAT_ARRAY('sigma_byz
',SIGSH(20,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2184 CALL HM_GET_FLOAT_ARRAY('sigma_bzx
',SIGSH(21,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2185 CALL HM_GET_FLOAT_ARRAY('eps_p
' ,SIGSH(27,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2187 ELSEIF (NIP /= 0) THEN
2190 CALL HM_GET_FLOAT_ARRAY('sigma_x
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2191 CALL HM_GET_FLOAT_ARRAY('sigma_y
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2192 CALL HM_GET_FLOAT_ARRAY('sigma_z
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2193 CALL HM_GET_FLOAT_ARRAY('sigma_xy
',TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2194 CALL HM_GET_FLOAT_ARRAY('sigma_yz
',TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2195 CALL HM_GET_FLOAT_ARRAY('sigma_zx
',TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2196 CALL HM_GET_FLOAT_ARRAY('eps_p
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2197 CALL HM_GET_FLOAT_ARRAY('pos_nip
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2200 INISHVAR = 22 + NIP*6
2203 ! Reading CARD_2 --- sigma_X, sigma_Y, sigma_Z ---
2204 SIGSH(PT,I) = TMPVAL1(N)
2205 SIGSH(PT + 1,I) = TMPVAL2(N)
2206 SIGSH(INISHVAR + N,I) = TMPVAL3(N)
2207 SIGSH(PT + 2,I) = TMPVAL4(N)
2208 SIGSH(PT + 3,I) = TMPVAL5(N)
2209 SIGSH(PT + 4,I) = TMPVAL6(N)
2210 SIGSH(PT + 5,I) = TMPVAL7(N)
2211 SIGSH(INISHVAR + NIP + N,I) = TMPVAL8(N)
2213 ENDIF ! IF (NIP = 0) THEN
2215 ELSEIF (NPG > 1) THEN
2217 SIGSH(NVSHELL,I) = NPG
2222 CALL HM_GET_FLOAT_ARRAY('sigma_x
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2223 CALL HM_GET_FLOAT_ARRAY('sigma_y
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2224 CALL HM_GET_FLOAT_ARRAY('sigma_z
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2225 CALL HM_GET_FLOAT_ARRAY('sigma_xy
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2226 CALL HM_GET_FLOAT_ARRAY('sigma_yz
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2227 CALL HM_GET_FLOAT_ARRAY('sigma_zx
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2228 CALL HM_GET_FLOAT_ARRAY('sigma_bx
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2229 CALL HM_GET_FLOAT_ARRAY('sigma_by
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2230 CALL HM_GET_FLOAT_ARRAY('sigma_bz
' ,TMPVAL9,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2231 CALL HM_GET_FLOAT_ARRAY('sigma_bxy
',TMPVAL10,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2232 CALL HM_GET_FLOAT_ARRAY('sigma_byz
',TMPVAL11,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2233 CALL HM_GET_FLOAT_ARRAY('sigma_bzx
',TMPVAL12,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2234 CALL HM_GET_FLOAT_ARRAY('eps_p
' ,TMPVAL13,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2239 SIGSH(PT ,I) = TMPVAL1(K)
2240 SIGSH(PT+1,I) = TMPVAL2(K)
2241 SIGSH(PT+2,I) = TMPVAL3(K)
2242 SIGSH(PT+3,I) = TMPVAL4(K)
2243 SIGSH(PT+4,I) = TMPVAL5(K)
2244 SIGSH(PT+5,I) = TMPVAL6(K)
2245 SIGSH(PT+6,I) = TMPVAL7(K)
2246 SIGSH(PT+7,I) = TMPVAL8(K)
2247 SIGSH(PT+8,I) = TMPVAL9(K)
2248 SIGSH(PT+9,I) = TMPVAL10(K)
2249 SIGSH(PT+10,I) = TMPVAL11(K)
2250 SIGSH(PT+11,I) = TMPVAL12(K)
2251 SIGSH(PT+12,I) = TMPVAL13(K)
2257 CALL HM_GET_FLOAT_ARRAY('sigma_x
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2258 CALL HM_GET_FLOAT_ARRAY('sigma_y
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2259 CALL HM_GET_FLOAT_ARRAY('sigma_z
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2260 CALL HM_GET_FLOAT_ARRAY('sigma_xy
',TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
2261 CALL HM_GET_FLOAT_ARRAY('sigma_yz',tmpval5,
SIZE,j,is_available,lsubmodel,unitab)
2272 sigsh(pt ,i) = tmpval1(l)
2273 sigsh(pt+1,i) = tmpval2(l)
2274 sigsh(pt+2,i) = tmpval3(l)
2275 sigsh(pt+3,i) = tmpval4(l)
2276 sigsh(pt+4,i) = tmpval5(l)
2277 sigsh(pt+5,i) = tmpval6(l)
2278 sigsh(pt+6,i) = tmpval7(l)
2279 sigsh(pt+7,i) = tmpval8(l)
2292 ELSEIF ( .NOT. glob )
THEN
2294 CALL hm_get_intv(
'inishe_strs_f_count',nb_elements,is_available,lsubmodel)
2306 ie=uel2sys(id_elem,ksysusr,numelc)
2310 nonexist = nonexist+1
2316 IF (ihbe==12 .OR. ihbe==24)
THEN
2321 IF (npgtmp /= npg)
THEN
2322 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ig),ltitr)
2340 sigsh(1,i) = id_elem
2341 id_sigsh(i) = id_elem
2347 sigsh(nvshell - 1 , i) = one
2349 IF (npg == 0 .OR. npg == 1)
THEN
2369 ELSEIF (nip /= 0)
THEN
2380 inishvar = 22 + nip*6
2384 sigsh(pt ,i) = tmpval1(n)
2385 sigsh(pt+1,i) = tmpval2(n)
2386 sigsh(pt+2,i) = tmpval3(n)
2387 sigsh(pt+3,i) = tmpval4(n)
2388 sigsh(pt+4,i) = tmpval5(n)
2389 sigsh(pt+6,i) = tmpval6(n)
2393 ELSEIF (npg > 1)
THEN
2395 sigsh(nvshell,i) = npg
2413 sigsh(pt ,i) = tmpval1(k)
2414 sigsh(pt+1,i) = tmpval2(k)
2415 sigsh(pt+2,i) = tmpval3(k)
2416 sigsh(pt+3,i) = tmpval4(k)
2417 sigsh(pt+4,i) = tmpval5(k)
2418 sigsh(pt+5,i) = tmpval6(k)
2419 sigsh(pt+6,i) = tmpval7(k)
2420 sigsh(pt+7,i) = tmpval8(k)
2421 sigsh(pt+8,i) = tmpval9(k)
2439 sigsh(pt ,i) = tmpval1(l)
2440 sigsh(pt+1,i) = tmpval2(l)
2441 sigsh(pt+2,i) = tmpval3(l)
2442 sigsh(pt+3,i) = tmpval4(l)
2443 sigsh(pt+4,i) = tmpval5(l)
2444 sigsh(pt+5,i) = tmpval6(l)
2463 CALL hm_get_intv(
'inishe_stra_f_glob_count',nb_elements,is_available,lsubmodel)
2475 ie=uel2sys(id_elem,ksysusr,numelc)
2479 nonexist = nonexist+1
2482 sigsh(1,i) = id_elem
2483 id_sigsh(i) = id_elem
2487 sigsh(nvshell - 1 , i) = one
2489 IF (npg == 0 .OR. npg == 1)
THEN
2492 IF (ihbe==24) sigsh(nvshell,i) = 4
2493 ELSEIF (npg>1 )
THEN
2495 sigsh(nvshell,i) = npg
2514 l = (n-1)*
max(1,npg)+ipg
2515 sigsh(pt ,i) = tmpval1(l)
2516 sigsh(pt+1,i) = tmpval2(l)
2517 sigsh(pt+2,i) = tmpval3(l)
2518 sigsh(pt+3,i) = tmpval4(l)
2519 sigsh(pt+4,i) = tmpval5(l)
2520 sigsh(pt+5,i) = tmpval6(l)
2521 sigsh(pt+6,i) = tmpval7(l)
2529 ELSEIF (.NOT. glob )
THEN
2531 CALL hm_get_intv(
'inishe_stra_f_count',nb_elements,is_available,lsubmodel)
2543 ie=uel2sys(id_elem,ksysusr,numelc)
2547 nonexist = nonexist+1
2550 sigsh(1,i) = id_elem
2551 id_sigsh(i) = id_elem
2553 sigsh(nvshell - 1 , i) = one
2555 IF (npg == 0 .OR. npg == 1)
THEN
2559 IF (ihbe==24) sigsh(nvshell,i) = 4
2570 ELSEIF (npg>1 )
THEN
2572 sigsh(nvshell,i) = npg
2595 sigsh(6,i) =sigsh(6,i) +tmpval1(ipg)/npg
2596 sigsh(7,i) =sigsh(7,i) +tmpval2(ipg)/npg
2597 sigsh(8,i) =sigsh(8,i) +tmpval3(ipg)/npg
2598 sigsh(9,i) =sigsh(9,i) +tmpval4(ipg)/npg
2599 sigsh(10,i)=sigsh(10,i)+tmpval5(ipg)/npg
2600 sigsh(11,i)=sigsh(11,i)+tmpval6(ipg)/npg
2601 sigsh(12,i)=sigsh(12,i)+tmpval7(ipg)/npg
2602 sigsh(13,i)=sigsh(13,i)+tmpval8(ipg)/npg
2616 CALL hm_get_intv(
'no_elems',nb_elements,is_available,lsubmodel)
2626 ie=uel2sys(id_elem,ksysusr,numelc)
2630 nonexist = nonexist+1
2633 sigsh(1,i) = id_elem
2634 id_sigsh(i) = id_elem
2643 CALL hm_get_intv(
'no_blocks',nb_elements,is_available,lsubmodel)
2653 ie=uel2sys(id_elem,ksysusr,numelc)
2657 nonexist = nonexist+1
2660 sigsh(1,i) = id_elem
2661 id_sigsh(i) = id_elem
2669 CALL hm_get_intv(
'inishe_ortho_count',nb_elements,is_available,lsubmodel)
2682 ie=uel2sys(id_elem,ksysusr,numelc)
2686 nonexist = nonexist+1
2694 pt = nvshell + nushell
2695 sigsh(1,i) = id_elem
2696 id_sigsh(i) = id_elem
2697 IF ( igtyp == 9) nip = nint(geo(npropg*(ig-1)+6))
2698 sigsh(pt + 4 ,i) = nip
2699 sigsh(pt + 5 ,i) = one
2700 IF( ihbe==12 .OR. ihbe==24)
THEN
2701 sigsh(nvshell,i) = 4
2703 sigsh(nvshell,i) = 1
2709 IF ( igtyp == 9 )
THEN
2712 sigsh(pt+1,i) = phi1*pi/hundred80
2713 sigsh(pt+2,i) = phi2*pi/hundred80
2715 ELSEIF (igtyp == 1 )
THEN
2719 . c1=
'/INISHE/ORTHO',
2721 . i2=id_elem,i1=igeo(1,ig))
2727 sigsh(pt+1,i) = tmpval1(jj)*pi/hundred80
2728 sigsh(pt+2,i) = tmpval2(jj)*pi/hundred80
2737 CALL hm_get_intv(
'inishe_orth_loc_count',nb_elements,is_available,lsubmodel)
2747! elt = set_usrtos(id_elem,map_tables%ISH4NM,numelc)
2750 ie=uel2sys(id_elem,ksysusr,numelc)
2754 nonexist = nonexist+1
2762 pt = nvshell + nushell
2763 id_sigsh(i) = id_elem
2764 sigsh(1,i) = id_elem
2765 IF (igtyp == 9) nip = nint(geo(npropg*(ig-1)+6))
2766 sigsh(pt + 4,i) = nip
2767 sigsh(pt + 5,i) = one
2768 IF( ihbe==12 .OR. ihbe==24)
THEN
2769 sigsh(nvshell,i) = 4
2771 sigsh(nvshell,i) = 1
2775 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2776 isubstack = iworksh(3, ie)
2777 nlay = stack%IGEO(1,isubstack)
2781 mlawly= stack%IGEO(ipmat + jj,isubstack)
2782 IF (mlawly == 58)
THEN
2797 ALLOCATE(mlaw_ly(nip))
2799 IF (igtyp == 9)
THEN
2801 IF(flagdeg == 1) angle1 = angle1*pi/hundred80
2802 sigsh(pt+1,i) = cos(angle1)
2803 sigsh(pt+2,i) = sin(angle1)
2805 ELSEIF (igtyp == 10 .OR. igtyp == 11 .OR. igtyp == 16 .OR.
2806 . igtyp == 17 .OR. igtyp == 51 .OR. igtyp == 52)
THEN
2807 IF (igtyp == 51 .OR. igtyp == 52)
THEN
2808 isubstack = iworksh(3, ie)
2809 nlay = stack%IGEO(1,isubstack)
2811 ipnpt_lay = ipmat + 2*nlay
2812 IF(nlay /= nip)
THEN
2816 nslice = stack%IGEO(ipnpt_lay + jj,isubstack)
2819 mlaw_ly(ipt)= stack%IGEO(ipmat + jj,isubstack)
2827 mlaw_ly(jj)= stack%IGEO(ipmat + jj,isubstack)
2832 angle1 = tmpval1(jj)
2833 angle2 = tmpval2(jj)
2834 IF(flagdeg == 1) angle1 = angle1*pi/hundred80
2835 IF(flagdeg == 1) angle2 = angle2*pi/hundred80
2837 IF (igtyp == 16 .OR.
2838 . (igtyp == 51 .AND. mlaw_ly(jj) == 58) .OR.
2839 . (igtyp == 52 .AND. mlaw_ly(jj) == 58) )
THEN
2841 angle2 = angle2 + angle1
2842 sigsh(pt+1,i) = cos(angle1)
2843 sigsh(pt+2,i) = sin(angle1)
2844 sigsh(pt+3,i) = cos(angle2)
2845 sigsh(pt+4,i) = sin(angle2)
2848 sigsh(pt+1,i) = cos(angle1)
2849 sigsh(pt+2,i) = sin(angle1)
2853 ELSEIF (igtyp == 1)
THEN
2857 . c1=
'/INISHE/ORTH_LOC',
2859 . i2=id_elem,i1=igeo(1,ig))
2861 IF(
ALLOCATED(mlaw_ly))
DEALLOCATE(mlaw_ly)
2865 CASE (
'SCALE_YLD' )
2867 CALL hm_get_intv(
'inishe_scale_yld_count',nb_elements,is_available,lsubmodel)
2878 ie=uel2sys(id_elem,ksysusr,numelc)
2882 nonexist = nonexist+1
2885 sigsh(nvshell + 1,i) = id_elem
2886 id_sigsh(i) = id_elem
2887 sigsh(nvshell + 2,i) = nip
2888 sigsh(nvshell + 3,i) = npg
2891 pt = nvshell+nushell+nortshel+nvshell1+3
2899 scaleyld = tmpval1(l)
2900 sigsh(pt+l,i) = scaleyld
2906 ENDDO !
DO j=1,nb_elements
2910 CALL hm_get_intv(
'inishe_aux_count',nb_elements,is_available,lsubmodel)
2918! elt = set_usrtos(id_elem,map_tables%ISH4NM,numelc)
2921 ie=uel2sys(id_elem,ksysusr,numelc)
2925 nonexist = nonexist+1
2930 nuvard00 = ipm(8,imat)
2931 IF (nuvard00 > nuvar)
THEN
2933 . msgtype=msgwarning,
2936 . c1=
'NUMBER OF USER VARIABLES',
2937 . c2=
'MATERIAL LAW ',
2941 IF ((ilaw == 36 .and. (nuvar < 4 .or.
2942 . nuvard00 < nuvar) .or.
2943 . (ilaw /= 36 .and. ilaw /= 78 .and. ilaw /= 87 .and. ilaw /= 112 .and. nuvard00 < nuvar))
THEN
2948 . c1=
'NUMBER OF USER VARIABLES',
2949 . c2=
'MATERIAL LAW ',
2956 nvarsh = nvshell + 4
2957 IF (nip == 0) nip = 1
2958 IF (npg == 0) npg = 1
2959 sigsh(1,i) = id_elem
2960 id_sigsh(i) = id_elem
2962 sigsh(nvshell,i) = npg
2966 IF (ihbe==24) sigsh(nvshell,i) = 4
2968 sigsh(nvshell + 2 ,i) = nip
2969 sigsh(nvshell + 3 ,i) = npg
2970 sigsh(nvshell + 4 ,i) = nuvar
2974 nmax_aux = num_lines*nuvar
2979 l = nuvar*(jj-1) + k
2980 sigsh(nvarsh+pt+k,i) = tmpval(l)
2990 CALL HM_GET_INTV('inishe_fail_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
2992 CALL HM_GET_INT_ARRAY_INDEX('shell_id
' ,ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
2993 CALL HM_GET_INT_ARRAY_INDEX('nlay
' ,NLAY,J,IS_AVAILABLE,LSUBMODEL)
2994 CALL HM_GET_INT_ARRAY_INDEX('npg
' ,NPG,J,IS_AVAILABLE,LSUBMODEL)
2995 CALL HM_GET_INT_ARRAY_INDEX('nptt
' ,NPTT,J,IS_AVAILABLE,LSUBMODEL)
2996 CALL HM_GET_INT_ARRAY_INDEX('lay_id
' ,ILAY,J,IS_AVAILABLE,LSUBMODEL)
2997 CALL HM_GET_INT_ARRAY_INDEX('fail_id
' ,IFAIL,J,IS_AVAILABLE,LSUBMODEL)
2998 CALL HM_GET_INT_ARRAY_INDEX('ifail_typ
',IRUPT_TYP,J,IS_AVAILABLE,LSUBMODEL)
2999 CALL HM_GET_INT_ARRAY_INDEX('nvar' ,NVAR_RUPT,J,IS_AVAILABLE,LSUBMODEL)
3000 CALL HM_GET_INT_ARRAY_INDEX('mat_id
' ,IMAT,J,IS_AVAILABLE,LSUBMODEL)
3001 CALL HM_GET_INT_ARRAY_INDEX('num_lines
',NUM_LINES,J,IS_AVAILABLE,LSUBMODEL)
3003! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH4NM,NUMELC)
3004! IE = MAP_TABLES%ISH4NM(ELT,2)
3006 IE=UEL2SYS(ID_ELEM,KSYSUSR,NUMELC)
3010 ! Shell was not found. Issue a Warning & Skip.
3011 NONEXIST = NONEXIST+1
3016 NPT_MAX = MAX(NPTT,NLAY)
3017 NVMAX = NVSHELL1 /(MAX(1,NPG)*NPT_MAX*5)
3018 IF (ID_ELEM /= NEM1) I = PTSHEL(IE)
3023 IF (IPM(1,K) == IMAT) THEN
3030 CALL ANCMSG(MSGID=1033,
3034 . C1='material law
',
3035 . C2='/inishe/fail
')
3036 ENDIF ! IF (IOK == 0)
3041 SIGSH(1,I) = ID_ELEM
3042 ID_SIGSH(I) = ID_ELEM
3043 IF ( IGTYP == 9 ) NLAY = NINT(GEO(NPROPG*(IG-1)+6))
3044.OR.
IF ( IGTYP == 10 IGTYP == 11) THEN
3047 SIGSH(2,I) = NPTT*NLAY
3049.OR.
IF (IHBE==12 IHBE==24) THEN
3050 SIGSH(NVSHELL,I) = 4
3052 SIGSH(NVSHELL,I) = 1
3055! check for consistency ( D00 & INIBRI)
3058 NFAIL(K) = MAT_PARAM(IMAT)%FAIL(K)%FAIL_ID
3059.AND.
IF (IFAIL == NFAIL(K)
3060 . IRUPT_TYP == MAT_PARAM(IMAT)%FAIL(K)%IRUPT) THEN
3068 CALL ANCMSG(MSGID=1033,
3072 . C1='failure criteria
',
3073 . C2='/inishe/fail
')
3076 PT = NVSHELL+NUSHELL+3+NORTSHEL
3081 NMAX_FAIL = NUM_LINES*NVAR_RUPT
3082 CALL HM_GET_FLOAT_ARRAY('v
' ,TMPVAL,NMAX_FAIL,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3086 L = NVAR_RUPT*(JJ-1) + K
3087 SIGSH(PT+L+(IFAIL-1)*NPT_MAX*NPG*NVMAX+
3088 . (ILAY-1)*NVMAX*NPG*NPTT,I) = TMPVAL(L)
3089 ENDDO ! DO K=1,NVAR_RUPT
3090 ENDDO ! DO JJ=1,NUM_LINES
3092 ENDIF ! IF (IE == 0) THEN
3093 ENDDO ! DO J=1,NB_ELEMENTS
3097 END SELECT ! SELECT CASE(KEY)
3099 ENDDO ! DO INI=1,NB_INISHE
3101 ENDIF ! IF ( NB_INISHE > 0 )
3107!-----------------------------------------
3109!-----------------------------------------
3110 I=NUMSHEL ! counted in yctrl.F
3112 CALL HM_OPTION_COUNT('/inish3
', NB_INISH3)
3114 IF ( NB_INISH3 > 0 ) THEN
3116 ! Start reading /INISH3 card
3117 CALL HM_OPTION_START('/inish3
')
3119! to be replaced by --- MAP_TABLES%ISH3NM ---
3120 IF (KTRIELTG==0) THEN
3123 ITRI(IE) = IXTG(NIXTG,IE)
3125 CALL MY_ORDERS(0,WORK,ITRI,INDEX,NUMELTG,1)
3128 KSYSUSRTG(J) =IXTG(NIXTG,IE)
3129 KSYSUSRTG(NUMELTG+J)=IE
3136 CALL HM_OPTION_READ_KEY(LSUBMODEL,
3138 . SUBMODEL_INDEX = SUB_INDEX,
3139 . SUBMODEL_ID = SUB_ID,
3143 IF (KEY2 /= ' ') GLOB = .TRUE.
3145! WRITE(iout,*) 'mirc
',KEY(1:LEN_TRIM(KEY))
3147 DO IUNIT=1,UNITAB%NUNITS
3148 IF (UNITAB%UNIT_ID(IUNIT) == UID) THEN
3154.AND.
IF (UID /= 0IFLAGUNIT == 0) THEN
3155 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,
3156 . I2=UID, I1=SUB_ID, C1='inish3
',
3161 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
3167 CALL HM_GET_INTV('inish3_epsp_f_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3170 ! Reading --- ID_ELEM, NIP, NPG, THK ---
3171 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3172 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
3173 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
3174 CALL HM_GET_FLOAT_ARRAY_INDEX('thick
',THK,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3176! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
3177! IE = MAP_TABLES%ISH3NM(ELT,2)
3179 IE = UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3182 ! Shell was not found. Issue a Warning & Skip.
3183 NONEXIST = NONEXIST+1
3186 I = NUMSHEL + PTSH3N(IE)
3188 ID_SIGSH(I) = ID_ELEM
3189 SIGSH(1,I) = ID_ELEM
3192 SIGSH(NVSHELL - 1,I) = ONE
3197 SIZE = NIP*MAX(NPG,1)
3198 CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)!
3206 SIGSH(PT+(K-1)*6+5,I) = TMPVAL(K+K0)
3212 END DO ! DO WHILE(JJ > 0)
3213!---------------------
3214 ELSEIF (NPG > 1) THEN
3215 SIGSH(NVSHELL,I) = NPG
3220 CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)!
3224 SIGSH(PT+(K-1)*9+5,I) = TMPVAL(K)
3229 CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)!
3237 SIGSH(PT+(K-1)*6+5,I) = TMPVAL(K+K0)
3243 END DO ! DO WHILE(JJ > 0)
3244!---------------------
3245 END IF ! IF (NIP == 0)
3247 ENDIF ! IF (IE /= 0)
3249 ENDDO ! DO J=1,NB_ELEMENTS
3256! --- 'strs_f/glob
' ---
3260 CALL HM_GET_INTV('inish3_strs_f_glob_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3263 ! Reading --- ID_ELEM, NIP, NPG, THK ---
3264 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3265 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
3266 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
3267 CALL HM_GET_FLOAT_ARRAY_INDEX('thick
',THK,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3269! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
3270! IE = MAP_TABLES%ISH3NM(ELT,2)
3272 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3275 ! Shell was not found. Issue a Warning & Skip.
3276 NONEXIST = NONEXIST+1
3279 ! Reading CARD_1 --- EM,EB,H1,H2,H3 ---
3280 CALL HM_GET_FLOAT_ARRAY_INDEX('em
',EM,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3281 CALL HM_GET_FLOAT_ARRAY_INDEX('eb
',EB,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3283 I = NUMSHEL + PTSH3N(IE)
3285 SIGSH(1,I) = ID_ELEM
3286 ID_SIGSH(I) = ID_ELEM
3295 SIGSH(NVSHELL - 1,I) = ONE
3297.OR.
IF (NPG == 0 NPG == 1) THEN
3300 ! Reading CARD_2 --- sigma_X, sigma_Y, sigma_Z ---
3301 CALL HM_GET_FLOAT_ARRAY('sigma_x
',SIGSH(22,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3302 CALL HM_GET_FLOAT_ARRAY('sigma_y
',SIGSH(23,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3303 CALL HM_GET_FLOAT_ARRAY('sigma_z
',SIGSH(18,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3304 ! Reading CARD_3 --- sigma_XY, sigma_YZ, sigma_ZX ---
3305 CALL HM_GET_FLOAT_ARRAY('sigma_xy
',SIGSH(24,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3306 CALL HM_GET_FLOAT_ARRAY('sigma_yz
',SIGSH(25,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3307 CALL HM_GET_FLOAT_ARRAY('sigma_zx
',SIGSH(26,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3309 ! Reading CARD_4 --- sigma_bX, sigma_bY, sigma_bZ ---
3310 CALL HM_GET_FLOAT_ARRAY('sigma_bx
',SIGSH(28,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3311 CALL HM_GET_FLOAT_ARRAY('sigma_by
',SIGSH(29,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3312 CALL HM_GET_FLOAT_ARRAY('sigma_bz
',SIGSH(19,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3313 ! Reading CARD_5 --- sigma_bXY, sigma_bYZ, sigma_bZX, eps_p ---
3314 CALL HM_GET_FLOAT_ARRAY('sigma_bxy
',SIGSH(30,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3315 CALL HM_GET_FLOAT_ARRAY('sigma_byz
',SIGSH(20,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3316 CALL HM_GET_FLOAT_ARRAY('sigma_bzx
',SIGSH(21,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3317 CALL HM_GET_FLOAT_ARRAY('eps_p
' ,SIGSH(27,I),1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3319 ELSEIF (NIP /= 0) THEN
3321!! CALL HM_GET_FLOAT_ARRAY('ep
',TMPVAL,36,J,IS_AVAILABLE,LSUBMODEL,UNITAB)!
3324 CALL HM_GET_FLOAT_ARRAY('sigma_x
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3325 CALL HM_GET_FLOAT_ARRAY('sigma_y
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3326 CALL HM_GET_FLOAT_ARRAY('sigma_z
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3327 CALL HM_GET_FLOAT_ARRAY('sigma_xy
',TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3328 CALL HM_GET_FLOAT_ARRAY('sigma_yz
',TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3329 CALL HM_GET_FLOAT_ARRAY('sigma_zx
',TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3330 CALL HM_GET_FLOAT_ARRAY('eps_p
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3331 CALL HM_GET_FLOAT_ARRAY('pos_nip
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3334 INISHVAR = 22 + NIP*6
3337 ! Reading CARD_2 --- sigma_X, sigma_Y, sigma_Z ---
3338 SIGSH(PT,I) = TMPVAL1(N)
3339 SIGSH(PT + 1,I) = TMPVAL2(N)
3340 SIGSH(INISHVAR + N,I) = TMPVAL3(N)
3341 SIGSH(PT + 2,I) = TMPVAL4(N)
3342 SIGSH(PT + 3,I) = TMPVAL5(N)
3343 SIGSH(PT + 4,I) = TMPVAL6(N)
3344 SIGSH(PT + 5,I) = TMPVAL7(N)
3345 SIGSH(INISHVAR+NIP+N,I) = TMPVAL8(N)
3347 ENDIF ! IF (NIP = 0) THEN
3349 ELSEIF (NPG > 1) THEN
3351 SIGSH(NVSHELL,I) = NPG
3356 CALL HM_GET_FLOAT_ARRAY('sigma_x
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3357 CALL HM_GET_FLOAT_ARRAY('sigma_y
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3358 CALL HM_GET_FLOAT_ARRAY('sigma_z
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3359 CALL HM_GET_FLOAT_ARRAY('sigma_xy
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3360 CALL HM_GET_FLOAT_ARRAY('sigma_yz
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3361 CALL HM_GET_FLOAT_ARRAY('sigma_zx
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3362 CALL HM_GET_FLOAT_ARRAY('sigma_bx
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3363 CALL HM_GET_FLOAT_ARRAY('sigma_by
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3364 CALL HM_GET_FLOAT_ARRAY('sigma_bz
' ,TMPVAL9,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3365 CALL HM_GET_FLOAT_ARRAY('sigma_bxy
',TMPVAL10,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3366 CALL HM_GET_FLOAT_ARRAY('sigma_byz
',TMPVAL11,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3367 CALL HM_GET_FLOAT_ARRAY('sigma_bzx
',TMPVAL12,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3368 CALL HM_GET_FLOAT_ARRAY('eps_p' ,tmpval13,
SIZE,j,is_available,lsubmodel,unitab)
3373 sigsh(pt ,i) = tmpval1(k)
3374 sigsh(pt+1,i) = tmpval2(k)
3375 sigsh(pt+2,i) = tmpval3(k)
3376 sigsh(pt+3,i) = tmpval4(k
3377 sigsh(pt+4,i) = tmpval5(k)
3378 sigsh(pt+5,i) = tmpval6(k)
3379 sigsh(pt+6,i) = tmpval7(k)
3380 sigsh(pt+7,i) = tmpval8(k)
3381 sigsh(pt+8,i) = tmpval9(k)
3382 sigsh(pt+9,i) = tmpval10(k)
3383 sigsh(pt+10,i) = tmpval11(k)
3384 sigsh(pt+11,i) = tmpval12(k)
3408 sigsh(pt ,i) = tmpval1(l)
3409 sigsh(pt+1,i) = tmpval2(l)
3410 sigsh(pt+2,i) = tmpval3(l)
3411 sigsh(pt+3,i) = tmpval4(l)
3412 sigsh(pt+4,i) = tmpval5(l)
3413 sigsh(pt+5,i) = tmpval6(l)
3414 sigsh(pt+6,i) = tmpval7(l)
3415 sigsh(pt+7,i) = tmpval8(l)
3434 ELSEIF ( .NOT. glob )
THEN
3436 CALL hm_get_intv(
'inish3_strs_f_count',nb_elements,is_available,lsubmodel)
3448 ie=uel2sys(id_elem,ksysusrtg,numeltg)
3452 nonexist = nonexist+1
3459 i = numshel + ptsh3n(ie)
3461 sigsh(1,i) = id_elem
3462 id_sigsh(i) = id_elem
3471 sigsh(nvshell - 1,i) = one
3473 IF (npg == 0 .OR. npg == 1)
THEN
3489 ELSEIF (nip /= 0)
THEN
3503 inishvar = 22 + nip*6
3507 sigsh(pt ,i) = tmpval1(n)
3508 sigsh(pt + 1,i) = tmpval2(n)
3509 sigsh(pt + 2,i) = tmpval3(n)
3510 sigsh(pt + 3,i) = tmpval4(n)
3511 sigsh(pt + 4,i) = tmpval5(n)
3512 sigsh(pt + 5,i) = tmpval6(n)
3516 ELSEIF (npg > 1)
THEN
3518 sigsh(nvshell,i) = npg
3536 sigsh(pt ,i) = tmpval1(k)
3537 sigsh(pt+1,i) = tmpval2(k)
3538 sigsh(pt+2,i) = tmpval3(k)
3539 sigsh(pt+3,i) = tmpval4(k)
3540 sigsh(pt+4,i) = tmpval5(k)
3541 sigsh(pt+5,i) = tmpval6(k)
3542 sigsh(pt+6,i) = tmpval7(k)
3543 sigsh(pt+7,i) = tmpval8(k)
3544 sigsh(pt+8,i) = tmpval9(k)
3562 sigsh(pt ,i) = tmpval1(l)
3563 sigsh(pt+1,i) = tmpval2(l)
3564 sigsh(pt+2,i) = tmpval3(l)
3565 sigsh(pt+3,i) = tmpval4(l)
3566 sigsh(pt+4,i) = tmpval5(l)
3567 sigsh(pt+5,i) = tmpval6(l)
3587 CALL hm_get_intv(
'inish3_stra_f_glob_count',nb_elements,is_available,lsubmodel)
3599 ie=uel2sys(id_elem,ksysusrtg,numeltg)
3603 nonexist = nonexist+1
3605 i = numshel + ptsh3n(ie)
3606 sigsh(1,i) = id_elem
3607 id_sigsh(i) = id_elem
3611 sigsh(nvshell,i) =
max(1,npg)
3612 sigsh(nvshell - 1,i) = one
3629 l = (n-1)*
max(1,npg)+ipg
3630 sigsh(pt ,i) = tmpval1(l)
3631 sigsh(pt+1,i) = tmpval2(l)
3632 sigsh(pt+2,i) = tmpval3(l)
3633 sigsh(pt+3,i) = tmpval4(l)
3634 sigsh(pt+4,i) = tmpval5(l)
3635 sigsh(pt+5,i) = tmpval6(l)
3636 sigsh(pt+6,i) = tmpval7(l)
3644 ELSEIF ( .NOT. glob )
THEN
3647 CALL hm_get_intv(
'inish3_stra_f_count',nb_elements,is_available,lsubmodel)
3656! elt = set_usrtos(id_elem,map_tables%ISH3NM,numeltg)
3659 ie=uel2sys(id_elem,ksysusrtg,numeltg)
3663 nonexist = nonexist+1
3665 i = numshel + ptsh3n(ie)
3666 sigsh(1,i) = id_elem
3667 id_sigsh(i) = id_elem
3669 sigsh(nvshell - 1,i) = one
3671 IF (npg == 0 .OR. npg == 1)
THEN
3682 ELSEIF (NPG>1 ) THEN
3684 SIGSH(NVSHELL,I) = NPG
3696 CALL HM_GET_FLOAT_ARRAY('eps_1
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3697 CALL HM_GET_FLOAT_ARRAY('eps_2
' ,TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3698 CALL HM_GET_FLOAT_ARRAY('eps_12
' ,TMPVAL3,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3699 CALL HM_GET_FLOAT_ARRAY('eps_23
' ,TMPVAL4,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3700 CALL HM_GET_FLOAT_ARRAY('eps_31
' ,TMPVAL5,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3701 CALL HM_GET_FLOAT_ARRAY('k1
' ,TMPVAL6,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3702 CALL HM_GET_FLOAT_ARRAY('k2
' ,TMPVAL7,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3703 CALL HM_GET_FLOAT_ARRAY('k12
' ,TMPVAL8,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3706 SIGSH(6,I) =SIGSH(6,I) +TMPVAL1(IPG)/NPG
3707 SIGSH(7,I) =SIGSH(7,I) +TMPVAL2(IPG)/NPG
3708 SIGSH(8,I) =SIGSH(8,I) +TMPVAL3(IPG)/NPG
3709 SIGSH(9,I) =SIGSH(9,I) +TMPVAL4(IPG)/NPG
3710 SIGSH(10,I)=SIGSH(10,I)+TMPVAL5(IPG)/NPG
3711 SIGSH(11,I)=SIGSH(11,I)+TMPVAL6(IPG)/NPG
3712 SIGSH(12,I)=SIGSH(12,I)+TMPVAL7(IPG)/NPG
3713 SIGSH(13,I)=SIGSH(13,I)+TMPVAL8(IPG)/NPG
3717.OR.
ENDIF ! IF (NPG == 0 NPG == 1)
3718 ENDIF ! IF (IE == 0) THEN
3719 ENDDO ! DO J=1,NB_ELEMENTS
3720 ENDIF ! IF ( GLOB ) THEN
3726 CALL HM_GET_INTV('no_elems
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3729 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3730 CALL HM_GET_FLOAT_ARRAY_INDEX('thick
' ,THK,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3733! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
3734! IE = MAP_TABLES%ISH3NM(ELT,2)
3736 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3739 ! Shell was not found. Issue a Warning & Skip.
3740 NONEXIST = NONEXIST+1
3742 I = NUMSHEL + PTSH3N(IE)
3743 SIGSH(1,I) = ID_ELEM
3744 ID_SIGSH(I) = ID_ELEM
3747 ENDIF ! IF (IE == 0)
3748 ENDDO ! DO J=1,NB_ELEMENTS
3753 CALL HM_GET_INTV('no_blocks
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3756 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3757 CALL HM_GET_FLOAT_ARRAY_INDEX('ep
' ,EPSP,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3759! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
3760! IE = MAP_TABLES%ISH3NM(ELT,2)
3762 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3765 ! Shell was not found. Issue a Warning & Skip.
3766 NONEXIST = NONEXIST+1
3768 I = NUMSHEL + PTSH3N(IE)
3769 SIGSH(1,I) = ID_ELEM
3770 ID_SIGSH(I) = ID_ELEM
3773 ENDIF ! IF (IE == 0) THEN
3774 ENDDO ! DO J=1,NB_ELEMENTS
3778 CALL HM_GET_INTV('inish3_ortho_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3781 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3782 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
3783!! CALL HM_GET_INT_ARRAY_INDEX('prop_type
',IGTYP,J,IS_AVAILABLE,LSUBMODEL)
3784 CALL HM_GET_FLOAT_ARRAY_INDEX('vx
',VX,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3785 CALL HM_GET_FLOAT_ARRAY_INDEX('vy
',VY,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3786 CALL HM_GET_FLOAT_ARRAY_INDEX('vz
',VZ,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3788! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTH)
3789! IE = MAP_TABLES%ISH3NM(ELT,2)
3791 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3794 ! Shell was not found. Issue a Warning & Skip.
3795 NONEXIST = NONEXIST+1
3802 I = NUMSHEL + PTSH3N(IE)
3803 PT = NVSHELL+NUSHELL
3804 !! SIGSH(1,I) = ID_ELEM
3805 ID_SIGSH(I) = ID_ELEM
3806 IF ( IGTYP == 9) NIP = NINT(GEO(NPROPG*(IG-1)+6))
3807 SIGSH(PT + 4,I) = NIP
3808 IF( ISH3N == 30 ) THEN
3809 SIGSH(NVSHELL,I) = 3
3811 SIGSH(NVSHELL,I) = 1
3817 IF ( IGTYP == 9 ) THEN
3818 CALL HM_GET_FLOAT_ARRAY_INDEX('phi_1
',PHI1,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3819 CALL HM_GET_FLOAT_ARRAY_INDEX('phi_2
',PHI2,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3820 SIGSH(PT+1,I) = PHI1*PI/HUNDRED80
3821 SIGSH(PT+2,I) = PHI2*PI/HUNDRED80
3823 ELSEIF (IGTYP == 1 ) THEN
3824 CALL ANCMSG(MSGID=761,
3827 . C1='/inish3/ortho
',
3829 . I2=ID_ELEM,I1=IGEO(1,IG))
3832 CALL HM_GET_FLOAT_ARRAY('phi_1_array
',TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3833 CALL HM_GET_FLOAT_ARRAY('phi_2_array
',TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3835 SIGSH(PT+1,I) = TMPVAL1(JJ)*PI/HUNDRED80
3836 SIGSH(PT+2,I) = TMPVAL2(JJ)*PI/HUNDRED80
3838 ENDDO ! DO JJ = 1,NIP
3839 ENDIF ! IF ( IGTYP == 9)
3840 ENDIF ! IF (IE == 0) THEN
3841 ENDDO ! DO J=1,NB_ELEMENTS
3845 CALL HM_GET_INTV('inish3_orth_loc_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3848 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3849 CALL HM_GET_INT_ARRAY_INDEX('nb_lay
',NIP,J,IS_AVAILABLE,LSUBMODEL)
3850 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
3851 CALL HM_GET_INT_ARRAY_INDEX('ndir
',NDIR,J,IS_AVAILABLE,LSUBMODEL)
3852 CALL HM_GET_INT_ARRAY_INDEX('iunit
',FLAGDEG,J,IS_AVAILABLE,LSUBMODEL)
3855! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
3856! IE = MAP_TABLES%ISH3NM(ELT,2)
3858 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3861 ! Shell was not found. Issue a Warning & Skip.
3862 NONEXIST = NONEXIST+1
3869 I = NUMSHEL + PTSH3N(IE)
3870 PT = NVSHELL + NUSHELL
3871 SIGSH(1,I) = ID_ELEM
3872 ID_SIGSH(I) = ID_ELEM
3873 IF (IGTYP == 9) NIP = NINT(GEO(NPROPG*(IG-1)+6))
3874 SIGSH(PT + 4 ,I) = NIP
3875 SIGSH(PT + 5,I) = ONE
3876 IF (ISH3N == 30) THEN
3877 SIGSH(NVSHELL,I) = 3
3879 SIGSH(NVSHELL,I) = 1
3883.OR.
IF (IGTYP == 51 IGTYP == 52) THEN
3884 ISUBSTACK = IWORKSH(3, NUMELC + IE)
3885 NLAY = STACK%IGEO(1,ISUBSTACK)
3889 MLAWLY= STACK%IGEO(IPMAT + JJ,ISUBSTACK) ! layer material
3890 IF (MLAWLY == 58) THEN
3891 CALL ANCMSG(MSGID=1126,
3899.OR.
ENDIF ! IF (IGTYP == 51 IGTYP == 52)
3901 ALLOCATE(MLAW_LY(NIP))
3904 CALL HM_GET_FLOAT_ARRAY('phi_i
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3905 CALL HM_GET_FLOAT_ARRAY('alpha_i
',TMPVAL2,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
3907 IF (IGTYP == 9) THEN
3908 ANGLE1 = TMPVAL1(1) ! one integration point
3909 IF(FLAGDEG == 1) ANGLE1 = ANGLE1*PI/HUNDRED80
3910 SIGSH(PT+1,I) = COS(ANGLE1)
3911 SIGSH(PT+2,I) = SIN(ANGLE1)
3913.OR..OR..OR.
ELSEIF (IGTYP == 10 IGTYP == 11 IGTYP == 16
3914.OR..OR.
. IGTYP == 17 IGTYP == 51 IGTYP == 52) THEN
3915.OR.
IF (IGTYP == 51 IGTYP == 52)THEN
3916 ISUBSTACK = IWORKSH(3, NUMELC + IE)
3917 NLAY = STACK%IGEO(1,ISUBSTACK) !
3919 IPNPT_LAY = IPMAT + 2*NLAY
3920 IF(NLAY /= NIP) THEN
3924 NSLICE = STACK%IGEO(IPNPT_LAY + JJ,ISUBSTACK)
3927 MLAW_LY(IPT)= STACK%IGEO(IPMAT + JJ,ISUBSTACK)
3935 MLAW_LY(JJ)= STACK%IGEO(IPMAT + JJ,ISUBSTACK)! layer material
3940 ANGLE1 = TMPVAL1(JJ)
3941 ANGLE2 = TMPVAL2(JJ)
3942 IF(FLAGDEG == 1) ANGLE1 = ANGLE1*PI/HUNDRED80
3943 IF(FLAGDEG == 1) ANGLE2 = ANGLE2*PI/HUNDRED80
3946.AND..OR.
. (IGTYP == 51 MLAW_LY(JJ) == 58)
3947.AND.
. (IGTYP == 52 MLAW_LY(JJ) == 58) ) THEN
3949 ANGLE2 = ANGLE2 + ANGLE1
3950 SIGSH(PT+1,I) = COS(ANGLE1)
3951 SIGSH(PT+2,I) = SIN(ANGLE1)
3952 SIGSH(PT+3,I) = COS(ANGLE2)
3953 SIGSH(PT+4,I) = SIN(ANGLE2)
3956 ANGLE1 = TMPVAL1(JJ)
3957 ANGLE1 = ANGLE1*PI/HUNDRED80
3958 SIGSH(PT+1,I) = COS(ANGLE1)
3959 SIGSH(PT+2,I) = SIN(ANGLE1)
3962 ENDDO ! DO JJ = 1,NIP
3963 ELSEIF (IGTYP == 1) THEN
3964 CALL ANCMSG(MSGID=761,
3967 . C1='/inish3/orth_loc
',
3968 . C2='3 nodes shell
',
3969 . I2=ID_ELEM,I1=IGEO(1,IG))
3970 ENDIF ! IF (IGTYP == 9)
3971 IF(ALLOCATED(MLAW_LY))DEALLOCATE(MLAW_LY)
3972 ENDIF ! IF (IE == 0) THEN
3973 ENDDO ! DO J=1,NB_ELEMENTS
3975 CASE ( 'scale_yld
' )
3977 CALL HM_GET_INTV('inish3_scale_yld_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
3981 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
3982 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
3983 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
3985! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
3986! IE = MAP_TABLES%ISH3NM(ELT,2)
3988 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
3991 ! Shell was not found. Issue a Warning & Skip.
3992 NONEXIST = NONEXIST+1
3994 I = NUMSHEL + PTSH3N(IE)
3995 SIGSH(NVSHELL + 1,I) = ID_ELEM ! elt ID
3996 ID_SIGSH(I) = ID_ELEM
3997 SIGSH(NVSHELL + 2,I) = NIP ! integ point
3998 SIGSH(NVSHELL + 3,I) = NPG
4001 CALL HM_GET_FLOAT_ARRAY('alpha_ij
' ,TMPVAL1,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4007 SCALEYLD = TMPVAL1(L)
4008 SIGSH(PT+ L,I) = SCALEYLD
4013 ENDIF ! IF (IE == 0) THEN
4014 ENDDO ! DO J=1,NB_ELEMENTS
4018 CALL HM_GET_INTV('inish3_aux_count
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4020 CALL HM_GET_INT_ARRAY_INDEX('shell_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4021 CALL HM_GET_INT_ARRAY_INDEX('nb_integr
',NIP,J,IS_AVAILABLE,LSUBMODEL)
4022 CALL HM_GET_INT_ARRAY_INDEX('npg
',NPG,J,IS_AVAILABLE,LSUBMODEL)
4023 CALL HM_GET_INT_ARRAY_INDEX('nvars
',NUVAR,J,IS_AVAILABLE,LSUBMODEL)
4026! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
4027! IE = MAP_TABLES%ISH3NM(ELT,2)
4029 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
4032 ! Shell was not found. Issue a Warning & Skip.
4033 NONEXIST = NONEXIST+1
4038 NUVARD00 = IPM(8,IMAT)
4039 IF (NUVARD00 > NUVAR) THEN
4040 CALL ANCMSG(MSGID=1121,
4041 . MSGTYPE=MSGWARNING,
4044 . C1='number of user variables
',
4045 . C2='material law
',
4049.and..or..and.
IF ((ILAW == 36 (NUVAR < 4 NUVARD00 > 3)
4050.or.
. NUVARD00 < NUVAR)
4051.and..and..and..and.
. (ILAW /= 36 ILAW /= 78 ILAW /= 87 ILAW /= 112 NUVARD00 < NUVAR)) THEN
4052 CALL ANCMSG(MSGID=695,
4056 . C1='number of user variables
',
4057 . C2='material law
',
4062 I = NUMSHEL + PTSH3N(IE)
4064 NVARSH = NVSHELL + 4
4065 IF (NIP == 0) NIP = 1
4066 IF (NPG == 0) NPG = 1
4067 SIGSH(1,I) = ID_ELEM
4068 ID_SIGSH(I) = ID_ELEM
4070 SIGSH(NVSHELL,I) = NPG
4071 SIGSH(NVSHELL + 2 ,I) = NIP
4072 SIGSH(NVSHELL + 3 ,I) = NPG
4073 SIGSH(NVSHELL + 4 ,I) = NUVAR
4076 CALL HM_GET_INT_ARRAY_INDEX('num_lines
',NUM_LINES,J,IS_AVAILABLE,LSUBMODEL)
4077 NMAX_AUX = NUM_LINES*NUVAR
4078 CALL HM_GET_FLOAT_ARRAY('v
' ,TMPVAL,NMAX_AUX,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4082 L = NUVAR*(JJ-1) + K
4083 SIGSH(NVARSH+PT+K,I) = TMPVAL(L)
4084 ENDDO ! DO K=1,NUVAR
4086 ENDDO ! DO JJ=1,NUM_LINES
4088 ENDIF ! IF (IE == 0) THEN
4089 ENDDO ! DO J=1,NB_ELEMENTS
4093 CALL HM_GET_INTV('inish3_fail_count',nb_elements,is_available,lsubmodel)
4100 CALL HM_GET_INT_ARRAY_INDEX('fail_id
' ,IFAIL,J,IS_AVAILABLE,LSUBMODEL)
4101 CALL HM_GET_INT_ARRAY_INDEX('ifail_typ
',IRUPT_TYP,J,IS_AVAILABLE,LSUBMODEL)
4102 CALL HM_GET_INT_ARRAY_INDEX('nvar' ,NVAR_RUPT,J,IS_AVAILABLE,LSUBMODEL)
4103 CALL HM_GET_INT_ARRAY_INDEX('mat_id
' ,IMAT,J,IS_AVAILABLE,LSUBMODEL)
4104 CALL HM_GET_INT_ARRAY_INDEX('num_lines
',NUM_LINES,J,IS_AVAILABLE,LSUBMODEL)
4106! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ISH3NM,NUMELTG)
4107! IE = MAP_TABLES%ISH3NM(ELT,2)
4109 IE=UEL2SYS(ID_ELEM,KSYSUSRTG,NUMELTG)
4112 ! Shell was not found. Issue a Warning & Skip.
4113 NONEXIST = NONEXIST+1
4118 NPT_MAX = MAX(NPTT,NLAY)
4119 NVMAX = NVSHELL1 /(MAX(1,NPG)*NPT_MAX*5)
4120 !!IF (ID_ELEM /= NEM1) I = PTSH3N(IE)
4122 I = NUMSHEL + PTSH3N(IE)
4126 IF (IPM(1,K) == IMAT) THEN
4133 CALL ANCMSG(MSGID=1033,
4137 . C1='material law
',
4138 . C2='/inishe/fail
')
4139 ENDIF ! IF (IOK == 0)
4144 SIGSH(1,I) = ID_ELEM
4145 ID_SIGSH(I) = ID_ELEM
4146 IF ( IGTYP == 9 ) NLAY = NINT(GEO(NPROPG*(IG-1)+6))
4147.OR.
IF ( IGTYP == 10 IGTYP == 11) THEN
4150 SIGSH(2,I) = NPTT*NLAY
4152 IF( ISH3N == 30 ) THEN
4153 SIGSH(NVSHELL,I) = 3
4155 SIGSH(NVSHELL,I) = 1
4158! check for consistency ( D00 & INIBRI)
4161 NFAIL(K) = MAT_PARAM(IMAT)%FAIL(K)%FAIL_ID
4162.AND.
IF (IFAIL == NFAIL(K)
4163 . IRUPT_TYP == MAT_PARAM(IMAT)%FAIL(K)%IRUPT) THEN
4171 CALL ANCMSG(MSGID=1033,
4175 . C1='failure criteria
',
4176 . C2='/inish3/fail
')
4179 PT = NVSHELL+NUSHELL+3+NORTSHEL
4184 NMAX_FAIL = NUM_LINES*NVAR_RUPT
4185 CALL HM_GET_FLOAT_ARRAY('v
' ,TMPVAL,NMAX_FAIL,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4189 L = NVAR_RUPT*(JJ-1) + K
4190 SIGSH(PT+L+(IFAIL-1)*NPT_MAX*NPG*NVMAX+
4191 . (ILAY-1)*NVMAX*NPG*NPTT,I) = TMPVAL(L)
4192 ENDDO ! DO K=1,NVAR_RUPT
4193 ENDDO ! DO JJ=1,NUM_LINES
4195 ENDIF ! IF (IE == 0) THEN
4196 ENDDO ! DO J=1,NB_ELEMENTS
4200 END SELECT ! SELECT CASE(KEY)
4202 ENDDO ! DO INI=1,NB_INISH3
4204 ENDIF ! IF ( NB_INISH3 > 0 )
4208!-----------------------------------------
4210!-----------------------------------------
4214 CALL HM_OPTION_COUNT('/initruss
', NB_INITRUSS)
4216 IF ( NB_INITRUSS > 0 ) THEN
4218 ! Start reading /INITRUSS card
4219 CALL HM_OPTION_START('/initruss
')
4221! to be replaced by --- MAP_TABLES%ITRUSSM ---
4222 IF (KTRIELTRUSS == 0) THEN
4225 ITRI(IE) = IXT(NIXT,IE)
4227 CALL MY_ORDERS(0,WORK,ITRI,INDEX,NUMELT,1)
4230 KSYSUSR(J) =IXT(NIXT,IE)
4231 KSYSUSR(NUMELT+J)=IE
4236 DO INI=1,NB_INITRUSS
4238 CALL HM_OPTION_READ_KEY(LSUBMODEL,
4240 . SUBMODEL_INDEX = SUB_INDEX,
4241 . SUBMODEL_ID = SUB_ID,
4245 DO IUNIT=1,UNITAB%NUNITS
4246 IF (UNITAB%UNIT_ID(IUNIT) == UID) THEN
4251.AND.
IF (UID /= 0IFLAGUNIT == 0) THEN
4252 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4253 . I2=UID,I1=SUB_ID,C1='initruss
',
4258 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
4263 CALL HM_GET_INTV('no_of_elems
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4266 ! Reading --- ID_ELEM, Prop ... ---
4267 CALL HM_GET_INT_ARRAY_INDEX('truss_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4268 CALL HM_GET_INT_ARRAY_INDEX('prop_type
',IGTYP,J,IS_AVAILABLE,LSUBMODEL)
4270! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%ITRUSSM,NUMELT)
4271! IE = MAP_TABLES%ITRUSSM(ELT,2)
4273 IE=UEL2SYS(ID_ELEM,KSYSUSR,NUMELT)
4276 ! Shell was not found. Issue a Warning & Skip.
4277 NONEXIST = NONEXIST+1
4280 CALL HM_GET_FLOAT_ARRAY_INDEX('eint
' ,EIN,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4281 CALL HM_GET_FLOAT_ARRAY_INDEX('f
' ,FOR,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4282 CALL HM_GET_FLOAT_ARRAY_INDEX('area' ,EPSP,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4283 CALL HM_GET_FLOAT_ARRAY_INDEX('eps_p
',AREA,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4286 ID_SIGTRUSS(I) = ID_ELEM
4287 SIGTRUSS(1,I) = ID_ELEM
4288 SIGTRUSS(2,I) = IGTYP
4291 SIGTRUSS(5,I) = EPSP
4292 SIGTRUSS(6,I) = AREA
4294 ENDIF ! IF (IE == 0)
4295 ENDDO ! DO J=1,NB_ELEMENTS
4299 END SELECT ! SELECT CASE(KEY)
4301 ENDDO ! DO INI=1,NB_NITRUSS
4303 ENDIF ! IF ( NB_NITRUSS > 0 )
4309!-----------------------------------------
4311!-----------------------------------------
4315 CALL HM_OPTION_COUNT('/inibeam
', NB_INIBEAM)
4317 IF ( NB_INIBEAM > 0 ) THEN
4319 ! Start reading /INIBEAM card
4320 CALL HM_OPTION_START('/inibeam
')
4322! to be replaced by --- MAP_TABLES%IBEAMM ---
4323 IF (KTRIELBEAM == 0) THEN
4324! tri local des elts du D00 par ID croissant (on ne trie qu'une fois)
4328 CALL my_orders(0,work,itri,index,numelp,1)
4331 ksysusr(j) =ixp(nixp,ie)
4332 ksysusr(numelp+j)=ie
4341 . submodel_index = sub_index,
4342 . submodel_id = sub_id,
4346 DO iunit=1,unitab%NUNITS
4347 IF (unitab%UNIT_ID(iunit) == uid)
THEN
4352 IF (uid /= 0.AND.iflagunit == 0)
THEN
4353 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
4354 . i2=uid,i1=sub_id,c1=
'INIBEAM',
4359 SELECT CASE (key(1:len_trim(key)))
4364 CALL hm_get_intv(
'inibeam_count',nb_elements,is_available,lsubmodel)
4375 ie=uel2sys(id_elem,ksysusr,numelp)
4379 nonexist = nonexist+1
4391 id_sigbeam(i) = id_elem
4392 sigbeam(1,i) = id_elem
4394 sigbeam(3,i) = igtyp
4403 sigbeam(10,i) = mom2
4404 sigbeam(11,i) = mom3
4408 IF (igtyp == 3)
THEN
4410 sigbeam(pt+1,i) = epsp
4412 ELSEIF (nip > 0)
THEN
4414 IF (igtyp == 18)
THEN
4419 CALL hm_get_float_array(
'EpsilonP_array',tmpval4,
SIZE,j,is_available,lsubmodel,unitab)
4421 sigbeam(pt+1,i) = tmpval1(k)
4422 sigbeam(pt+2,i) = tmpval2(k)
4423 sigbeam(pt+3,i) = tmpval3(k)
4424 sigbeam(pt+4,i) = tmpval4(k)
4441 CALL hm_get_intv(
'inibeam_count',nb_elements,is_available,lsubmodel)
4453 ie=uel2sys(id_elem,ksysusr,numelp)
4457 nonexist = nonexist+1
4463 id_sigbeam(i) = id_elem
4464 sigbeam(1,i) = id_elem
4468 nvarbeam = nvbeam + 4
4469 sigbeam(nvbeam + 1 ,i) = id_elem
4470 sigbeam(nvbeam + 2 ,i) = nip
4471 sigbeam(nvbeam + 3 ,i) = igtyp
4472 sigbeam(nvbeam + 4 ,i) = nuvar
4474 IF (igtyp /= 18)
THEN
4475 CALL ancmsg(msgid=1236,anmode=aninfo,msgtype=msgerror,
4482 nmax_aux = nip*nuvar
4487 l = nuvar*(jj-1) + k
4488 sigbeam(nvarbeam+pt+k,i) = tmpval(l
4517 IF ( nb_inispri > 0 )
THEN
4523 IF (ktrielspr == 0)
THEN
4526 itri(ie) = ixr(nixr,ie)
4528 CALL my_orders(0,work,itri,index,numelr,1)
4531 ksysusr(j) =ixr(nixr,ie)
4532 ksysusr(numelr+j)=ie
4542 . submodel_id = sub_id
4546 DO iunit=1,unitab%NUNITS
4547 IF (unitab%UNIT_ID(iunit) == uid)
THEN
4552 IF (uid /= 0.AND.iflagunit == 0)
THEN
4553 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
4554 . i2=uid,i1=sub_id,c1=
'INISPRING',
4559 SELECT CASE (key(1:len_trim(key)))
4564 CALL hm_get_intv(
'size_spring',nb_elements,is_available,lsubmodel)
4575 ie=uel2sys(id_elem,ksysusr,numelr)
4579 nonexist = nonexist+1
4582 id_sigspri(i) = id_elem
4583 sigrs(1,i) = id_elem
4585 IF (igtyp == 4 .OR. igtyp == 12)
THEN
4592 CALL HM_GET_FLOAT_ARRAY_INDEX('l_x' ,sigrs(7,i),j,is_available,lsubmodel,unitab)
4595 IF (igtyp == 12)
THEN
4599 ELSEIF (igtyp == 8 .OR. igtyp == 13 .OR. igtyp == 25 .OR. igtyp == 23)
THEN
4614 CALL HM_GET_FLOAT_ARRAY_INDEX('d_z
' ,SIGRS(13,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4615 CALL HM_GET_FLOAT_ARRAY_INDEX('fep_z
' ,SIGRS(14,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4616 CALL HM_GET_FLOAT_ARRAY_INDEX('dpl_z+
' ,SIGRS(15,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4617 CALL HM_GET_FLOAT_ARRAY_INDEX('dpl_z-
' ,SIGRS(16,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4619 CALL HM_GET_FLOAT_ARRAY_INDEX('m_x
' ,SIGRS(17,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4620 CALL HM_GET_FLOAT_ARRAY_INDEX('r_x
' ,SIGRS(18,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4621 CALL HM_GET_FLOAT_ARRAY_INDEX('mep_x
' ,SIGRS(19,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4622 CALL HM_GET_FLOAT_ARRAY_INDEX('rpl_x+
' ,SIGRS(20,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4623 CALL HM_GET_FLOAT_ARRAY_INDEX('rpl_x-
' ,SIGRS(21,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4625 CALL HM_GET_FLOAT_ARRAY_INDEX('m_y
' ,SIGRS(22,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4626 CALL HM_GET_FLOAT_ARRAY_INDEX('r_y
' ,SIGRS(23,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4627 CALL HM_GET_FLOAT_ARRAY_INDEX('mep_y
' ,SIGRS(24,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4628 CALL HM_GET_FLOAT_ARRAY_INDEX('rpl_y+
' ,SIGRS(25,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4629 CALL HM_GET_FLOAT_ARRAY_INDEX('rpl_y-
' ,SIGRS(26,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4631 CALL HM_GET_FLOAT_ARRAY_INDEX('m_z
' ,SIGRS(27,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4632 CALL HM_GET_FLOAT_ARRAY_INDEX('r_z
' ,SIGRS(28,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4633 CALL HM_GET_FLOAT_ARRAY_INDEX('mep_z
' ,SIGRS(29,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4634 CALL HM_GET_FLOAT_ARRAY_INDEX('rpl_z+
' ,SIGRS(30,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4635 CALL HM_GET_FLOAT_ARRAY_INDEX('rpl_z-
' ,SIGRS(31,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4637 CALL HM_GET_FLOAT_ARRAY_INDEX('l_x
' ,SIGRS(32,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4638 CALL HM_GET_FLOAT_ARRAY_INDEX('l_y
' ,SIGRS(33,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4639 CALL HM_GET_FLOAT_ARRAY_INDEX('l_z
' ,SIGRS(34,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4640 CALL HM_GET_FLOAT_ARRAY_INDEX('ei
' ,SIGRS(35,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4641 CALL HM_GET_FLOAT_ARRAY_INDEX('ed_x
' ,SIGRS(36,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4643 CALL HM_GET_FLOAT_ARRAY_INDEX('ed_y
' ,SIGRS(37,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4644 CALL HM_GET_FLOAT_ARRAY_INDEX('ed_z
' ,SIGRS(38,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4645 CALL HM_GET_FLOAT_ARRAY_INDEX('er_x
' ,SIGRS(39,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4646 CALL HM_GET_FLOAT_ARRAY_INDEX('er_y
' ,SIGRS(40,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4647 CALL HM_GET_FLOAT_ARRAY_INDEX('er_z
' ,SIGRS(41,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4649 ELSEIF (IGTYP == 26) THEN
4651 CALL HM_GET_FLOAT_ARRAY_INDEX('f_x
' ,SIGRS(2,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4652 CALL HM_GET_FLOAT_ARRAY_INDEX('d_x
' ,SIGRS(3,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4653 CALL HM_GET_FLOAT_ARRAY_INDEX('fep_x
' ,SIGRS(4,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4654 CALL HM_GET_FLOAT_ARRAY_INDEX('l_x
' ,SIGRS(7,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4655 CALL HM_GET_FLOAT_ARRAY_INDEX('ei
' ,SIGRS(8,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4656 CALL HM_GET_FLOAT_ARRAY_INDEX('dv
' ,SIGRS(9,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4659.OR..OR..OR.
ELSEIF (IGTYP == 29 IGTYP == 30 IGTYP == 31
4660.OR..OR..OR.
. IGTYP == 32 IGTYP == 33 IGTYP == 35
4661.OR..OR..OR.
. IGTYP == 36 IGTYP == 44 IGTYP == 45
4664 CALL HM_GET_FLOAT_ARRAY_INDEX('f_x
' ,SIGRS(2,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4665 CALL HM_GET_FLOAT_ARRAY_INDEX('d_x
' ,SIGRS(3,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4666 CALL HM_GET_FLOAT_ARRAY_INDEX('f_y
' ,SIGRS(4,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4667 CALL HM_GET_FLOAT_ARRAY_INDEX('d_y
' ,SIGRS(5,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4668 CALL HM_GET_FLOAT_ARRAY_INDEX('f_z
' ,SIGRS(6,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4669 CALL HM_GET_FLOAT_ARRAY_INDEX('d_z
' ,SIGRS(7,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4670 CALL HM_GET_FLOAT_ARRAY_INDEX('m_x
' ,SIGRS(8,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4671 CALL HM_GET_FLOAT_ARRAY_INDEX('r_x
' ,SIGRS(9,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4672 CALL HM_GET_FLOAT_ARRAY_INDEX('m_y
' ,SIGRS(10,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4673 CALL HM_GET_FLOAT_ARRAY_INDEX('r_y
' ,SIGRS(11,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4674 CALL HM_GET_FLOAT_ARRAY_INDEX('m_z
' ,SIGRS(12,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4675 CALL HM_GET_FLOAT_ARRAY_INDEX('r_z
' ,SIGRS(13,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4676 CALL HM_GET_FLOAT_ARRAY_INDEX('ei
' ,SIGRS(14,I),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4683 CALL HM_GET_FLOAT_ARRAY('vr
' ,TMPVAL,SIZE,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4686 SIGRS(PT+K,I) = TMPVAL(K)
4687 ENDDO ! DO K=1,NUVAR
4690.OR.
ENDIF ! IF (IGTYP == 4 IGTYP == 12)
4692 ENDIF ! IF (IE == 0)
4694 ENDDO ! DO J=1,NB_ELEMENTS
4698 END SELECT ! SELECT CASE(KEY)
4700 ENDDO ! DO INI=1,NB_INISPRI
4702 ENDIF ! IF ( NB_INISPRI > 0 )
4708!-----------------------------------------
4710!-----------------------------------------
4714 CALL HM_OPTION_COUNT('/iniqua
', NB_INIQUA)
4716 IF ( NB_INIQUA > 0 ) THEN
4718 ! Start reading /INIQUA card
4719 CALL HM_OPTION_START('/iniqua
')
4721! to be replaced by --- MAP_TABLES%IQUADM ---
4722 IF (KTRIELTQUAD == 0) THEN
4725 ITRIQ(IE) = IXQ(NIXQ,IE)
4727 CALL MY_ORDERS(0,WORK,ITRIQ,INDEXQ,NUMELQ,1)
4730 KSYSUSRQ(J) = IXQ(NIXQ,IE)
4731 KSYSUSRQ(NUMELQ+J)=IE
4738 CALL HM_OPTION_READ_KEY(LSUBMODEL,
4740 . SUBMODEL_INDEX = SUB_INDEX,
4741 . SUBMODEL_ID = SUB_ID,
4745 DO IUNIT=1,UNITAB%NUNITS
4746 IF (UNITAB%UNIT_ID(IUNIT) == UID) THEN
4751.AND.
IF (UID/=0IFLAGUNIT == 0) THEN
4752 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4753 . I2=UID,I1=SUB_ID,C1='iniqua
',
4758 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
4763 CALL HM_GET_INTV('no_blocks
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4766 ! Reading --- ID_ELEM, ... ---
4767 CALL HM_GET_INT_ARRAY_INDEX('quad_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4769! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%IQUADM,NUMELQ)
4770! IE = MAP_TABLES%IQUADM(ELT,2)
4772!! IE=UEL2SYS(ID_ELEM,KSYSUSR,NUMELQ)
4773 IE=UEL2SYS(ID_ELEM,KSYSUSRQ,NUMELQ)
4776 ! Shell was not found. Issue a Warning & Skip.
4777 NONEXIST = NONEXIST+1
4779 CALL HM_GET_FLOAT_ARRAY_INDEX('value',DENS,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4781 ID_QUAD_SIGI(I) = ID_ELEM
4783 ENDIF ! IF (IE == 0)
4784 ENDDO ! DO J=1,NB_ELEMENTS
4789 CALL HM_GET_INTV('no_blocks
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4792 ! Reading --- ID_ELEM, ... ---
4793 CALL HM_GET_INT_ARRAY_INDEX('quad_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4795! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%IQUADM,NUMELQ)
4796! IE = MAP_TABLES%IQUADM(ELT,2)
4798!! IE=UEL2SYS(ID_ELEM,KSYSUSR,NUMELQ)
4799 IE=UEL2SYS(ID_ELEM,KSYSUSRQ,NUMELQ)
4802 ! Shell was not found. Issue a Warning & Skip.
4803 NONEXIST = NONEXIST+1
4805 CALL HM_GET_FLOAT_ARRAY_INDEX('value',ENER,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4807 ID_QUAD_SIGI(I) = ID_ELEM
4809 ENDIF ! IF (IE == 0)
4810 ENDDO ! DO J=1,NB_ELEMENTS
4815 CALL HM_GET_INTV('no_blocks
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4818 ! Reading --- ID_ELEM, ... ---
4819 CALL HM_GET_INT_ARRAY_INDEX('quad_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4821! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%IQUADM,NUMELQ)
4822! IE = MAP_TABLES%IQUADM(ELT,2)
4824 IE=UEL2SYS(ID_ELEM,KSYSUSRQ,NUMELQ)
4827 ! Shell was not found. Issue a Warning & Skip.
4828 NONEXIST = NONEXIST+1
4830 CALL HM_GET_FLOAT_ARRAY_INDEX('value',EPSP,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4832 ID_QUAD_SIGI(I) = ID_ELEM
4834 ENDIF ! IF (IE == 0)
4835 ENDDO ! DO J=1,NB_ELEMENTS
4840 CALL HM_GET_INTV('no_blocks
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4843 ! Reading --- ID_ELEM, ... ---
4845 CALL HM_GET_INT_ARRAY_INDEX('quad_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4847! ELT = SET_USRTOS(ID_ELEM,MAP_TABLES%IQUADM,NUMELQ)
4848! IE = MAP_TABLES%IQUADM(ELT,2)
4850 IE=UEL2SYS(ID_ELEM,KSYSUSRQ,NUMELQ)
4853 ! Shell was not found. Issue a Warning & Skip.
4854 NONEXIST = NONEXIST+1
4856 CALL HM_GET_FLOAT_ARRAY_INDEX('sigma_x
' ,S(1),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4857 CALL HM_GET_FLOAT_ARRAY_INDEX('sigma_y
' ,S(2),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4858 CALL HM_GET_FLOAT_ARRAY_INDEX('sigma_z
' ,S(3),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4859 CALL HM_GET_FLOAT_ARRAY_INDEX('sigma_xy
',S(4),J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4862 ID_QUAD_SIGI(I) = ID_ELEM
4866 ENDIF ! IF (IE == 0)
4867 ENDDO ! DO J=1,NB_ELEMENTS
4871 END SELECT ! SELECT CASE(KEY)
4874 ENDDO ! DO INI=1,NB_INIQUA
4876 ENDIF ! IF ( NB_INIQUA > 0 )
4880!-----------------------------------------
4882!-----------------------------------------
4885 CALL HM_OPTION_COUNT('/inisphcel
', NB_INISPHCEL)
4887 IF ( NB_INISPHCEL > 0 ) THEN
4889 ! Start reading /INISPHCEL card
4890 CALL HM_OPTION_START('/inisphcel
')
4892 IF (KTRIELSPHCEL == 0) THEN
4894 ITRISPH(IE) = KXSP(NISP,IE)
4896 CALL MY_ORDERS(0,WORK,ITRISPH,INDEXSPH,NUMSPH,1)
4899 KSYSUSRSPH(J) =KXSP(NISP,IE)
4900 KSYSUSRSPH(NUMSPH+J)=IE
4905 DO INI=1,NB_INISPHCEL
4907 CALL HM_OPTION_READ_KEY(LSUBMODEL,
4909 . SUBMODEL_INDEX = SUB_INDEX,
4910 . SUBMODEL_ID = SUB_ID,
4914 IF (KEY2 /= ' ') GLOB = .TRUE.
4917 DO IUNIT=1,UNITAB%NUNITS
4918 IF (UNITAB%UNIT_ID(IUNIT) == UID) THEN
4924.AND.
IF (UID /= 0IFLAGUNIT == 0) THEN
4925 CALL ANCMSG(MSGID=659,ANMODE=ANINFO,MSGTYPE=MSGERROR,
4926 . I2=UID, I1=SUB_ID, C1='inisphcel
',
4931 SELECT CASE (KEY(1:LEN_TRIM(KEY)))
4935 CALL HM_GET_INTV('no_blocks
',NB_ELEMENTS,IS_AVAILABLE,LSUBMODEL)
4939 CALL HM_GET_INT_ARRAY_INDEX('sphcel_id
',ID_ELEM,J,IS_AVAILABLE,LSUBMODEL)
4940 CALL HM_GET_INT_ARRAY_INDEX('nvarsph
',NUVAR,J,IS_AVAILABLE,LSUBMODEL)
4941 CALL HM_GET_FLOAT_ARRAY_INDEX('eint
',ENER,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4942 CALL HM_GET_FLOAT_ARRAY_INDEX('rho
',RHO,J,IS_AVAILABLE,LSUBMODEL,UNITAB)
4943 CALL HM_GET_FLOAT_ARRAY_INDEX('h',
slen,j,is_available,lsubmodel,unitab)
4949 ie=uel2sys(id_elem,ksysusrsph,numsph)
4953 nonexist = nonexist+1
4955 id_sigsph(i) = id_elem
4967 sigsph(12,i) = nuvar
4970 sigsph(12+k,i) = tmpval(k)
4987 IF (nonexist > 0)
THEN
4988 CALL ancmsg(msgid=3045,anmode=aninfo,msgtype=msgwarning,i1=nonexist)
4993 DEALLOCATE (ksysusrs)
4994 DEALLOCATE (ksysusrtg)
4997 DEALLOCATE (ksysusrq)
4998 DEALLOCATE (ies2iparg)
4999 IF(
ALLOCATED(itrisph))
DEALLOCATE(itrisph)
5000 IF(
ALLOCATED(indexsph))
DEALLOCATE(indexsph)
5001 IF(
ALLOCATED(ksysusrsph))
DEALLOCATE(ksysusrsph)