45
46
47
52 USE defaults_mod
54
55
56
57#include "implicit_f.inc"
58
59
60
61#include "units_c.inc"
62#include "com04_c.inc"
63#include "param_c.inc"
64#include "scr16_c.inc"
65#include "scr17_c.inc"
66#include "sphcom.inc"
67#include "tablen_c.inc"
68
69
70
71 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
72 INTEGER IGEO(NPROPGI),IPM(NPROPMI,*),SUB_ID,IG,IGTYP
74 . geo(npropg), pm(npropm,*),rtrans(ntransf,*)
76 . fac_m, fac_l, fac_t
77 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
78 CHARACTER(LEN=NCHARTITLE)::IDTITL
79 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
80 TYPE(SHELL_DEFAULTS_), INTENT(IN) :: DEFAULTS_SHELL
81
82
83
84 CHARACTER LAW_ID*4
85 INTEGER NUML(100),NLY,NLYMAX,N1,N,J,IERREL,M1,M2,M3,M4,
86 . K, N2, N3, ISTRAIN, MLAWLY1,ISHEAR,IPLAST,IHBE,ITHK,IREP,
87 . IDSK, ISK, IPANG, IPTHK, IPPOS, IPOS, IPMAT, IPWEIGHT,ISKN(LISKN,*),
88 . ISS, PID1,ISMSTR,ISROT,IBID,IGMAT,IHBEOUTP,IHBE_OLD,IRP
89 my_real an, vx, vy, vz, thickt, dt, tmin, tmax,weight,pthk,cvis,pun,
90 . phi_i,thk_i,z_i,wf_i,zshift
91 INTEGER ISH3N
92 INTEGER ID,ID1,IUN,IPPLY,NLY_TMP,L,M
93 CHARACTER(LEN=NCHARTITLE) :: TITR,TITR1
94 INTEGER IHBE_D,IPLA_D,ISTR_D,ITHK_D,ISHEA_D,ISST_D,
95 . ISH3N_D, ISTRA_D,NPTS_D,IDRIL_D
96 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
97
98
99
100
101
102
103
104 DATA iun/1/
105 DATA pun/0.1/
106
107
108
109
110
111 is_encrypted = .false.
112 is_available = .false.
113
114 ihbe_d = defaults_shell%ishell
115 ish3n_d= defaults_shell%ish3n
116 isst_d = defaults_shell%ismstr
117 ipla_d = defaults_shell%iplas
118 ithk_d = defaults_shell%ithick
119 idril_d= defaults_shell%idrill
120 ishea_d = 0
121 npts_d = 0
122 istra_d = 1
123
124 ihbe=0
125 ismstr=0
126 isrot=0
127 pthk = zero
128 irp = 0
129
130 istrain=1
131
132 nlymax= 100
133 ipang = 200
134 ipthk = 300
135 ippos = 400
136 ipmat = 100
137 ipweight = 900
138 idsk = 0
139 irep = 0
140 ipos = 0
141
142
143
144
145 ishear = 0
146
147 cvis = zero
148
149 igmat = 1
150 igeo(98)= igmat
151
152
153 igeo( 1)=ig
154 igeo(11)=igtyp
155 geo(12) =igtyp+pun
156
157
158
159
161
162
163
165 nly_tmp = 0
166 DO k=1,nly
168 IF(ipply == 0) ipply = 1
169 nly_tmp = nly_tmp + ipply
170 ENDDO
171
172
173
174
175 CALL hm_get_intv(
'Ishell',ihbe,is_available,lsubmodel)
176 CALL hm_get_intv(
'Ismstr',ismstr,is_available,lsubmodel)
177 CALL hm_get_intv(
'ISH3N',ish3n,is_available,lsubmodel)
178 CALL hm_get_intv(
'Idrill',isrot,is_available,lsubmodel)
180
181 CALL HM_GET_INTV('ithick',ITHK,IS_AVAILABLE,LSUBMODEL)
182 CALL HM_GET_INTV('iplas',IPLAST,IS_AVAILABLE,LSUBMODEL)
183 CALL HM_GET_INTV('skew_csid',IDSK,IS_AVAILABLE,LSUBMODEL)
184 CALL HM_GET_INTV('iorth',IREP,IS_AVAILABLE,LSUBMODEL)
185 CALL HM_GET_INTV('ipos',IPOS,IS_AVAILABLE,LSUBMODEL)
186 CALL HM_GET_INTV('ip',IRP,IS_AVAILABLE,LSUBMODEL)
187
188
189
190 CALL HM_GET_FLOATV('p_thick_fail',PTHK,IS_AVAILABLE,LSUBMODEL,UNITAB)
191 CALL HM_GET_FLOATV('hm',GEO(13),IS_AVAILABLE,LSUBMODEL,UNITAB)
192 CALL HM_GET_FLOATV('hf',GEO(14),IS_AVAILABLE,LSUBMODEL,UNITAB)
193 CALL HM_GET_FLOATV('hr',GEO(15),IS_AVAILABLE,LSUBMODEL,UNITAB)
194 CALL HM_GET_FLOATV('dm',GEO(16),IS_AVAILABLE,LSUBMODEL,UNITAB)
195 CALL HM_GET_FLOATV('dn',GEO(17),IS_AVAILABLE,LSUBMODEL,UNITAB)
196 CALL HM_GET_FLOATV('thick',GEO(1),IS_AVAILABLE,LSUBMODEL,UNITAB)
197 CALL HM_GET_FLOATV('area_shear',GEO(38),IS_AVAILABLE,LSUBMODEL,UNITAB)
198 CALL HM_GET_FLOATV('v_x',VX,IS_AVAILABLE,LSUBMODEL,UNITAB)
199 CALL HM_GET_FLOATV('v_y',VY,IS_AVAILABLE,LSUBMODEL,UNITAB)
200 CALL HM_GET_FLOATV('v_z',VZ,IS_AVAILABLE,LSUBMODEL,UNITAB)
201
202
203 IF (PTHK == ZERO) PTHK = ONE-EM06
204 PTHK = MIN(PTHK, ONE)
205 PTHK = MAX(PTHK,-ONE)
206 GEO(42) = PTHK
207
208 IF(IHBE==0)IHBE=IHBE_D
209 IHBEOUTP=IHBE
210.AND..AND. IF (IHBE == 4 ISH3N==0 ISH3N_D == 1) THEN
211 CALL ANCMSG(MSGID=680,
212 . MSGTYPE=MSGWARNING,
213 . ANMODE=ANINFO_BLIND_1,
214 . I1=IG,
215 . C1=IDTITL)
216 ENDIF
217.OR. IF (IHBE==22IHBE==23) THEN
218 CALL ANCMSG(MSGID=539,
219 . MSGTYPE=MSGWARNING,
220 . ANMODE=ANINFO_BLIND_1,
221 . I1=IG,
222 . C1=IDTITL)
223 IHBE=24
224 ENDIF
225 IF(ISH3N==0) ISH3N = ISH3N_D
226 IGEO(18) = ISH3N
227 IF (GEO(16) == ZERO) IGEO(31) = 1
228
229 IF (IHBE==24) THEN
230 IF (CVIS==ZERO) CVIS=ONE
231 IF (GEO(17)==ZERO) GEO(17)=ZEP015
232 ENDIF
233
234 IF(ISMSTR==0)ISMSTR=ISST_D
235 IF (ISST_D == -2) ISMSTR = -1
236 IF(IHBE==3)THEN
237 IF(GEO(13)==ZERO)GEO(13)=EM01
238 IF(GEO(14)==ZERO)GEO(14)=EM01
239 IF(GEO(15)==ZERO)GEO(15)=EM02
240 ELSE
241 IF(GEO(13)==ZERO)GEO(13)=EM02
242 IF(GEO(14)==ZERO)GEO(14)=EM02
243 IF(GEO(15)==ZERO)GEO(15)=EM02
244 ENDIF
245 IF(ISROT==0)ISROT=IDRIL_D
246 IF(ISROT==2) ISROT = 0
247 IGEO(20)=ISROT
248
249.AND..AND. IF (ISMSTR==10ISROT>0IDROT==0) IDROT = 1
250
251 IF(ISMSTR==0) ISMSTR=2
252.AND..AND. IF(ISMSTR==3IHBE/=0IHBE/=2) THEN
253 ISMSTR = 2
254 CALL ANCMSG(MSGID=319,
255 . MSGTYPE=MSGWARNING,
256 . ANMODE=ANINFO_BLIND_2,
257 . I1=IG,
258 . C1=IDTITL)
259 ENDIF
260 GEO(3) = ISMSTR
261 IGEO(5) = ISMSTR
262
263
264 IGEO(10)=IHBE
265 GEO(171)=IHBE
266
267 IF(IHBE==3)THEN
268 IF(GEO(13)==ZERO)GEO(13)=EM01
269 IF(GEO(14)==ZERO)GEO(14)=EM01
270 IF(GEO(15)==ZERO)GEO(15)=EM02
271 ELSEIF(IHBE<10)THEN
272 IF(GEO(13)==ZERO)GEO(13)=EM02
273 IF(GEO(14)==ZERO)GEO(14)=EM02
274 IF(GEO(15)==ZERO)GEO(15)=EM02
275 ENDIF
276.AND. IF (IHBE>11IHBE<29) THEN
277 GEO(13)=GEO(17)
278 GEO(17)=CVIS
279 ENDIF
280
281
282 IF(GEO(38) == ZERO) GEO(38)=FIVE_OVER_6
283 IF(NLY == -1)NLY=NPTS_D
284 IF(NLY == 0) NLY = 1
285 IF(NLY == 1) GEO(38)= ZERO
286 AN=SQRT(VX*VX+VY*VY+VZ*VZ)
287
288 IF(AN < EM10)THEN
289 VX=ONE
290 VY=ZERO
291 VZ=ZERO
292 IF (IRP==23) THEN
293 CALL ANCMSG(MSGID=1922,
294 . MSGTYPE=MSGERROR,
295 . ANMODE=ANINFO,
296 . C1='property',
297 . I1=IG,
298 . C2='property',
299 . C3=TITR,
300 . I2=IRP)
301 END IF
302 ELSE
303 VX=VX/AN
304 VY=VY/AN
305 VZ=VZ/AN
306 ENDIF
307
308 IF (SUB_ID /= 0)
309 . CALL SUBROTVECT(VX,VY,VZ,RTRANS,SUB_ID,LSUBMODEL)
310
311
312 ISK = 0
313 IF (IDSK/=0) THEN
314 DO J=0,NUMSKW+MIN(IUN,NSPCOND)*NUMSPH+NSUBMOD
315 IF(IDSK == ISKN(4,J+1)) THEN
316 ISK=J+1
317 GO TO 10
318 ENDIF
319 END DO
320 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
321 CALL ANCMSG(MSGID=184,
322 . MSGTYPE=MSGERROR,
323 . ANMODE=ANINFO,
324 . C1='property',
325 . I1=IG,
326 . C2='property',
327 . C3=TITR,
328 . I2=IDSK)
329 10 CONTINUE
330 ENDIF
331.OR..AND. IF ((IRP==22IRP==25)ISK==0) THEN
332 CALL ANCMSG(MSGID=1923,
333 . MSGTYPE=MSGERROR,
334 . ANMODE=ANINFO,
335 . C1='property',
336 . I1=IG,
337 . C2='property',
338 . C3=TITR,
339 . I2=IRP)
340 END IF
341 IGEO(2)=ISK
342 GEO(7)=VX
343 GEO(8)=VY
344 GEO(9)=VZ
345 IF(ITHK == 0)ITHK=ITHK_D
346 IF(ITHK_D==-2)ITHK=-1
347 IF(ISHEAR == 0)ISHEAR=ISHEA_D
348 IF(IPLAST == 0)IPLAST=IPLA_D
349 IF(IPLA_D==-2) IPLAST=-1
350
351 GEO(11)=ISTRAIN
352 IHBE=IGEO(10)
353 IGEO(6)=IREP
354 GEO(35)=ITHK
355 GEO(37)=ISHEAR
356 GEO(39)=IPLAST
357 ISS=IGEO(5)
358 IG=IGEO(1)
359
360 IGEO(14) = IRP
361
362 IF(IS_ENCRYPTED)THEN
363 WRITE(IOUT,1000)IG
364 1000 FORMAT(
365 & 5X,'composite layered shell property set'/,
366 & 5X,'------------------------------------'/,
367 & 5X,'property set number . . . . . . . . . .=',I10/,
368 & 5X,'confidential data'//)
369 ELSE
370 IF(ISK == 0)THEN
371.AND. IF (IHBE>11IHBE<29) THEN
372 WRITE(IOUT,2112)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
373 . ISH3N,IGEO(20),
374 . GEO(16),GEO(13),GEO(38),GEO(42),ISHEAR,ITHK,
375 . IPLAST,IREP,GEO(7),GEO(8),GEO(9),IGEO(14)
376 ELSE
377 WRITE(IOUT,2110)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
378 . ISH3N,
379 . GEO(13),GEO(14),GEO(15),GEO(16),
380 . GEO(38),GEO(42),ISHEAR,ITHK,IPLAST,IREP,
381 . GEO(7),GEO(8),GEO(9),IGEO(14)
382 ENDIF
383 ELSE
384.AND. IF (IHBE>11IHBE<29) THEN
385 WRITE(IOUT,2113)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
386 . ISH3N,IGEO(20),
387 . GEO(16),GEO(13),GEO(38),GEO(42),ISHEAR,ITHK,
388 . IPLAST,IREP,IDSK,IGEO(14)
389 ELSE
390 WRITE(IOUT,2111)IG,NLY,ISTRAIN,GEO(1),ISS,IHBE,
391 . ISH3N,
392 . GEO(13),GEO(14),GEO(15),GEO(16),GEO(38),
393 . GEO(42),ISHEAR,ITHK,IPLAST,IREP,IDSK,IGEO(14)
394 ENDIF
395 ENDIF
396 ENDIF
397
398 IF (NLY == 0) THEN
399 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
400 CALL ANCMSG(MSGID=27,
401 . MSGTYPE=MSGERROR,
402 . ANMODE=ANINFO_BLIND_1,
403 . I1=IG,
404 . C1=TITR)
405 ENDIF
406 IF (NLY>NLYMAX) THEN
407 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
408 CALL ANCMSG(MSGID=28,
409 . MSGTYPE=MSGERROR,
410 . ANMODE=ANINFO_BLIND_1,
411 . I2=NLYMAX,
412 . I1=IG,
413 . C1=TITR)
414 ENDIF
415 IF (NLY_TMP>NLYMAX) THEN
416 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
417 CALL ANCMSG(MSGID=28,
418 . MSGTYPE=MSGERROR,
419 . ANMODE=ANINFO_BLIND_1,
420 . I2=NLYMAX,
421 . I1=IG,
422 . C1=TITR)
423 ENDIF
424
425 N1 = MIN0(NLY,NLYMAX)
426 GEO(6)= MAX(N1,NLY_TMP)+EM01
427 IGEO(4) = MAX(N1,NLY_TMP)
428
429
430
431
432
433
434 M = 0
435 DO K=1,N1
436 CALL HM_GET_INT_ARRAY_INDEX('ipply',IPPLY,K,IS_AVAILABLE,LSUBMODEL)
437
438 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_phi',PHI_I,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
439 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_thick',THK_I,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
440 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_zi',Z_I,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
441 CALL HM_GET_FLOAT_ARRAY_INDEX('prop_wfi',WEIGHT,K,IS_AVAILABLE,LSUBMODEL,UNITAB)
442 IF (IPPLY == 0) IPPLY = 1
443
444 DO L=1,IPPLY
445 M = M + 1
446 CALL HM_GET_INT_ARRAY_INDEX('prop_mi',NUML(M),K,IS_AVAILABLE,LSUBMODEL)
447 GEO(IPANG+M) = PHI_I
448 GEO(IPTHK+M) = THK_I/IPPLY
449 GEO(IPPOS+M) = Z_I
450 IF (WEIGHT == ZERO) WEIGHT = ONE
451 GEO(IPWEIGHT+M)= WEIGHT
452 ENDDO
453 ENDDO
454
455 IGEO(99) = IPOS
456 ZSHIFT = ZERO
457 IF (IPOS > 0)THEN
458 TMIN = EP20
459 TMAX = -EP20
460
461 DO N=1,NLY_TMP
462 DT = HALF*GEO(IPTHK+N)
463 TMIN = MIN(TMIN,GEO(IPPOS+N)-DT)
464 TMAX = MAX(TMAX,GEO(IPPOS+N)+DT)
465 ENDDO
466 THICKT = TMAX - TMIN
467 ZSHIFT = HALF*(TMAX + TMIN)
468 DT = ZERO
469 IF (DEFAULTS_SHELL%IOFFSET==3) DT = ZSHIFT
470 GEO(200)=THICKT
471 DO N=1,NLY_TMP
472 GEO(IPTHK+N)=GEO(IPTHK+N) / MAX(THICKT,EM20)
473 GEO(IPPOS+N)=(GEO(IPPOS+N)-DT) / MAX(THICKT,EM20)
474 ENDDO
475 ELSE
476 THICKT = ZERO
477 DO N=1,NLY_TMP
478 THICKT=THICKT+GEO(IPTHK+N)
479 ENDDO
480 DO N=1,NLY_TMP
481 GEO(IPTHK+N)=GEO(IPTHK+N) / MAX(THICKT,EM20)
482 ENDDO
483
484 GEO(IPPOS+1) = -HALF + HALF*GEO(IPTHK+1)
485 DO N=2,NLY_TMP
486 GEO(IPPOS+N) = GEO(IPPOS+N-1)
487 . + HALF*(GEO(IPTHK+N)+GEO(IPTHK+N-1))
488 ENDDO
489 GEO(200)=THICKT
490 ENDIF
491 GEO(199) = ZSHIFT
492
493 IERREL=NINT(ABS((THICKT-GEO(1))/GEO(1))*EP02)
494 IF(IERREL>10) THEN
495 PID1=IGEO(1)
496 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
497 CALL ANCMSG(MSGID=29,
498 . MSGTYPE=MSGWARNING,
499 . ANMODE=ANINFO_BLIND_1,
500 . I2=IERREL,
501 . I1=PID1,
502 . C1=TITR)
503 ENDIF
504
505
506
507 DO J=1,NUMMAT
508 IF (IPM(1,J) == NUML(1)) THEN
509 IGEO(IPMAT+1) = J
510 MLAWLY1= NINT(PM(19,J))
511 IF(MLAWLY1 == 25) GO TO 250
512 IF(MLAWLY1 == 27) GO TO 250
513 IF(MLAWLY1 == 15) GO TO 250
514 IF(MLAWLY1>=29) GO TO 250
515 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
516 CALL FRETITL2(TITR1,IPM(NPROPMI-LTITR+1,J),LTITR)
517 CALL ANCMSG(MSGID=30,
518 . ANMODE=ANINFO,
519 . MSGTYPE=MSGERROR,
520 . I1=IG,
521 . C1=TITR,
522 . I2=NUML(1),
523 . C2=TITR1,
524 . I3=MLAWLY1)
525 GO TO 250
526 ENDIF
527 ENDDO
528 CALL FRETITL2(TITR1,IGEO(NPROPGI-LTITR+1),LTITR)
529 CALL ANCMSG(MSGID=31,
530 . ANMODE=ANINFO,
531 . MSGTYPE=MSGERROR,
532 . I1=IG,
533 . C1=TITR1,
534 . I2=NUML(1))
535 IGEO(IPMAT+1) = 1
536 250 CONTINUE
537
538 DO 350 N=2,NLY_TMP
539 DO J=1,NUMMAT
540 IF(IPM(1,J) == NUML(N)) THEN
541 IGEO(IPMAT+N) = J
542 IF(NINT(PM(19,J)) == MLAWLY1) GO TO 350
543 WRITE(LAW_ID,'(i2)')MLAWLY1
544 IF (MLAWLY1==99) LAW_ID='user'
545 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
546 CALL FRETITL2(TITR1,IPM(NPROPMI-LTITR+1,J),LTITR)
547 CALL ANCMSG(MSGID=334,
548 . MSGTYPE=MSGERROR,
549 . ANMODE=ANINFO_BLIND_1,
550 . I1=IG,
551 . C1=TITR,
552 . I2=NUML(N),
553 . C2=TITR1,
554 . C3=LAW_ID)
555 GO TO 350
556 ENDIF
557 ENDDO
558 CALL FRETITL2(TITR,IGEO(NPROPGI-LTITR+1),LTITR)
559 CALL ANCMSG(MSGID=31,
560 . ANMODE=ANINFO,
561 . MSGTYPE=MSGERROR,
562 . I1=IG,
563 . C1=TITR,
564 . I2=NUML(N))
565 IGEO(IPMAT+N) = 1
566 350 CONTINUE
567
568 DO N=1,NLY_TMP
569 M1=IPANG+N
570 M2=IPTHK+N
571 M3=IPPOS+N
572 M4=IPWEIGHT+N
573.NOT. IF( IS_ENCRYPTED)THEN
574 WRITE(IOUT,2121)N,GEO(M1),GEO(M2)*GEO(1),GEO(M3)*GEO(1),
575 . GEO(M4),NUML(N)
576 ENDIF
577 GEO(M1)=GEO(M1)*PI/HUNDRED80
578 ENDDO
579
580
581
582 IHBE=NINT(GEO(171))
583 IF(IHBE==0)THEN
584 GEO(171)=0
585 ELSEIF(IHBE==1)THEN
586 GEO(171)=1
587 ELSEIF(IHBE==2)THEN
588 GEO(171)=0
589.AND..AND. ELSEIF(IHBE>=3IHBE<100IHBE/=4)THEN
590 GEO(171)=IHBE-1
591 ENDIF
592
593
594 ISHEAR = GEO(37)
595 IF(ISHEAR==0)THEN
596 GEO(37)=0
597 ELSEIF(ISHEAR==1)THEN
598 GEO(37)=1
599 ELSEIF(ISHEAR==2)THEN
600 GEO(37)=0
601 ENDIF
602
603
604 PROP_TAG(IGTYP)%G_SIG = 0
605 PROP_TAG(IGTYP)%G_FOR = 5
606 PROP_TAG(IGTYP)%G_MOM = 3
607 PROP_TAG(IGTYP)%G_THK = 1
608 PROP_TAG(IGTYP)%G_EINT= 2
609 PROP_TAG(IGTYP)%G_EINS= 0
610 PROP_TAG(IGTYP)%L_SIG = 5
611 IF (IGTYP == 17) PROP_TAG(IGTYP)%L_SIGPLY = 3
612 PROP_TAG(IGTYP)%L_THK = 0
613 PROP_TAG(IGTYP)%L_EINT= 2
614 PROP_TAG(IGTYP)%L_EINS= 0
615 PROP_TAG(IGTYP)%G_VOL = 0
616 PROP_TAG(IGTYP)%L_VOL = 0
617 PROP_TAG(IGTYP)%LY_DMG = 2
618
619 PROP_TAG(IGTYP)%LY_GAMA = 6
620 PROP_TAG(IGTYP)%LY_DIRA = 2
621
622 PROP_TAG(IGTYP)%LY_PLAPT = 1
623 PROP_TAG(IGTYP)%LY_SIGPT = 5
624 PROP_TAG(IGTYP)%G_FORPG = 5
625 PROP_TAG(IGTYP)%G_MOMPG = 3
626 PROP_TAG(IGTYP)%G_STRPG = 8
627 IF(IGMAT > 1)
628 . PROP_TAG(IGTYP)%LY_DMG = 2
629
630
631 IGEO(1) =IG
632 IGEO(11)=IGTYP
633.AND. IF(GEO( 3)/=ZEROIGEO( 5)== 0)IGEO( 5)=NINT(GEO( 3))
634.AND. IF(GEO(39)/=ZEROIGEO( 9)== 0)IGEO( 9)=NINT(GEO(39))
635.AND. IF(GEO(171)/=ZEROIGEO(10)== 0)
636 . IGEO(10)=NINT(GEO(171))
637
638
639 RETURN
640 2110 FORMAT(
641 & 5X,'composite layered shell property set ',
642 & 'with variable thicknesses and materials'/,
643 & 5X,'property set number . . . . . . . . . .=',I10/,
644 & 5X,'number of layers. . . . . . . . . . . .=',I10/,
645 & 5X,'post processing strain flag . . . . . .=',I10/,
646 & 5X,'shell thickness . . . . . . . . . . . .=',1PG20.13/,
647 & 5X,'small strain flag . . . . . . . . . . .=',I10/,
648 & 5X,'shell formulation flag. . . . . . . . .=',I10/,
649 & 5X,'3node shell formulation flag. . . . . .=',I10/,
650 & 5X,'shell hourglass membrane
damping. . . .=
',1PG20.13/,
651 & 5X,'shell hourglass flexural
damping. . . .=
',1PG20.13/,
652 & 5X,'shell hourglass rotational
damping. . .=
',1PG20.13/,
653 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
654 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
655 & 5X,'element deletion PARAMETER. . . . . . .=',1PG20.13/,
656 & 5X,' > 0.0 : fraction of failed thickness ',/,
657 & 5X,' < 0.0 : fraction of failed layers ',/,
658 & 5X,'shear formulation flag. . . . . . . . .=',I10/,
659 & 5X,'thickness variation flag. . . . . . . .=',I10/,
660 & 5X,'plasticity formulation flag . . . . . .=',I10/,
661 & 5X,'local ortothropy system flag. . . . . .=',I10/,
662 & 5X,'x component of dir 1 of orthotropy. . .=',1PG20.13/,
663 & 5X,'y component of dir 1 of orthotropy. . .=',1PG20.13/,
664 & 5X,'z component of dir 1 of orthotropy. . .=',1PG20.13/,
665 & 5X,'reference direction flag in shell plane=',I10/)
666 2111 FORMAT(
667 & 5X,'composite layered shell property set ',
668 & 'with variable thicknesses and materials'/,
669 & 5X,'property set number . . . . . . . . . .=',I10/,
670 & 5X,'number of layers. . . . . . . . . . . .=',I10/,
671 & 5X,'post processing strain flag . . . . . .=',I10/,
672 & 5X,'shell thickness . . . . . . . . . . . .=',1PG20.13/,
673 & 5X,'small strain flag . . . . . . . . . . .=',I10/,
674 & 5X,'shell formulation flag. . . . . . . . .=',I10/,
675 & 5X,'3node shell formulation flag. . . . . .=',I10/,
676 & 5X,'shell hourglass membrane
damping. . . .=
',1PG20.13/,
677 & 5X,'shell hourglass flexural
damping. . . .=
',1PG20.13/,
678 & 5X,'shell hourglass rotational
damping. . .=
',1PG20.13/,
679 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
680 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
681 & 5X,'element deletion PARAMETER. . . . . . .=',1PG20.13/,
682 & 5X,' > 0.0 : fraction of failed thickness ',/,
683 & 5X,' < 0.0 : fraction of failed layers ',/,
684 & 5X,'shear formulation flag. . . . . . . . .=',I10/,
685 & 5X,'thickness variation flag. . . . . . . .=',I10/,
686 & 5X,'plasticity formulation flag . . . . . .=',I10/,
687 & 5X,'local ortothropy system flag. . . . . .=',I10/,
688 & 5X,'skew of
the first orthotropy direction.=
',I10/,
689 & 5X,'reference direction flag in shell plane=',I10/)
690 2112 FORMAT(
691 & 5X,'composite layered shell property set ',
692 & 'with variable thicknesses and materials'/,
693 & 5X,'property set number . . . . . . . . . .=',I10/,
694 & 5X,'number of layers. . . . . . . . . . . .=',I10/,
695 & 5X,'post processing strain flag . . . . . .=',I10/,
696 & 5X,'shell thickness . . . . . . . . . . . .=',1PG20.13/,
697 & 5X,'small strain flag . . . . . . . . . . .=',I10/,
698 & 5X,'shell formulation flag. . . . . . . . .=',I10/,
699 & 5X,'3node shell formulation flag. . . . . .=',I10/,
700 & 5X,'drilling d.o.f. flag . . . . . . . . .=',I10/,
701 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
702 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
703 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
704 & 5X,'element deletion PARAMETER. . . . . . .=',1PG20.13/,
705 & 5X,' > 0.0 : fraction of failed thickness ',/,
706 & 5X,' < 0.0 : fraction of failed layers ',/,
707 & 5X,'shear formulation flag. . . . . . . . .=',I10/,
708 & 5X,'thickness variation flag. . . . . . . .=',I10/,
709 & 5X,'plasticity formulation flag . . . . . .=',I10/,
710 & 5X,'local ortothropy system flag. . . . . .=',I10/,
711 & 5X,'x component of dir 1 of orthotropy. . .=',1PG20.13/,
712 & 5X,'y component of dir 1 of orthotropy. . .=',1PG20.13/,
713 & 5X,'z component of dir 1 of orthotropy. . .=',1PG20.13/,
714 & 5X,'reference direction flag in shell plane=',I10/)
715 2113 FORMAT(
716 & 5X,'composite layered shell property set ',
717 & 'with variable thicknesses and materials'/,
718 & 5X,'property set number . . . . . . . . . .=',I10/,
719 & 5X,'number of layers. . . . . . . . . . . .=',I10/,
720 & 5X,'post processing strain flag . . . . . .=',I10/,
721 & 5X,'shell thickness . . . . . . . . . . . .=',1PG20.13/,
722 & 5X,'small strain flag . . . . . . . . . . .=',I10/,
723 & 5X,'shell formulation flag. . . . . . . . .=',I10/,
724 & 5X,'3node shell formulation flag. . . . . .=',I10/,
725 & 5X,'drilling d.o.f. flag . . . . . . . . .=',I10/,
726 & 5X,'shell membrane
damping. . . . . . . . .=
',1PG20.13/,
727 & 5X,'shell numerical
damping . . . . . . . .=
',1PG20.13/,
728 & 5X,'shear
area reduction factor . . . . . .=
',1PG20.13/,
729 & 5X,'element deletion PARAMETER. . . . . . .=',1PG20.13/,
730 & 5X,' > 0.0 : fraction of failed thickness ',/,
731 & 5X,' < 0.0 : fraction of failed layers ',/,
732 & 5X,'shear formulation flag. . . . . . . . .=',I10/,
733 & 5X,'thickness variation flag. . . . . . . .=',I10/,
734 & 5X,'plasticity formulation flag . . . . . .=',I10/,
735 & 5X,'local ortothropy system flag. . . . . .=',I10/,
736 & 5X,'skew of
the first orthotropy direction.=
',I10/,
737 & 5X,'reference direction flag in shell plane=',I10/)
738 2121 FORMAT(
739 & 5X,'layer ',I3/,
740 & 5X,' angle(dir 1,proj(dir 1 / shell).=',1PG20.13/,
741 & 5X,' thickness . . . . . . . . . . . .=',1PG20.13/,
742 & 5X,' position. . . . . . . . . . . . .=',1PG20.13/,
743 & 5X,' layer failure weight factor . . .=',1PG20.13/,
744 & 5X,' material number . . . . . . . . .=',I10/)
subroutine damping(nodft, nodlt, v, vr, a, ar, damp, ms, in, igrnod, dim, itask, weight, tagslv_rby, wfext)
end diagonal values have been computed in the(sparse) matrix id.SOL
subroutine hm_get_int_array_index(name, ival, index, is_available, lsubmodel)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine area(d1, x, x2, y, y2, eint, stif0)
integer, parameter nchartitle