37
38
39
41 USE mat_elem_mod
42 USE elbufdef_mod
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "param_c.inc"
53#include "units_c.inc"
54#include "scr16_c.inc"
55#include "scr17_c.inc"
56
57
58
59 INTEGER IPART(LIPART1,*),IPART_STATE(*),IPARTS(*),IPARTC(*),IPARTG(*)
60 INTEGER,INTENT(INOUT) :: IPM(NPROPMI,NUMMAT),IPARG(NPARG,*)
61
62 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
63 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
64
65
66
67 INTEGER I,IDPRT,K_STAT,J,IP,IPID,IGTYP,
68 . IFAIL,NLAY,FAIL_ID,MAT_ID,IL,IMAT,
69 . NFAIL,NG,ITY,NFT,IPRT
70 INTEGER MAT_CHECKED(NUMMAT)
71
72 iprt = 0
73 IF (nstatprt /= 0) THEN
74 mat_checked = 0
75 DO i=1,nstatprt
76 READ(iin,'(I10)') idprt
77 ip=0
78 DO j=1,npart
79 IF (ipart(4,j) == idprt)ip=j
80 ENDDO
81 IF (ip == 0) THEN
82 CALL ancmsg(msgid=119,anmode=aninfo,i1=idprt)
84 ENDIF
85 ipart_state(ip)=1
86
87
88
89
90 IF ( stat_c(8) == 1) THEN
91
92 DO ng=1,ngroup
93 ity = iparg(5,ng)
94 nft = iparg(3,ng)
95 ipid=ipart(2,ip)
96 IF (ity == 1 .or. ity == 3 .or. ity == 7) THEN
97 IF (ity == 1) iprt=iparts(1+nft)
98 IF (ity == 3) iprt=ipartc(1+nft)
99 IF (ity == 7) iprt=ipartg(1+nft)
100 IF ( iprt /= ip ) cycle
101
102 nlay = elbuf_tab(ng)%NLAY
103
104 DO il = 1,nlay
105 imat = elbuf_tab(ng)%BUFLY(il)%IMAT
106 nfail = elbuf_tab(ng)%BUFLY(il)%NFAIL
107 mat_id = ipm(1,imat)
108 IF (mat_checked(imat) == 0 ) THEN
109 mat_checked(imat) = 1
110 DO ifail = 1,nfail
111 fail_id = mat_param(imat)%FAIL(ifail)%FAIL_ID
112 IF (fail_id == 0)
113 .
CALL ancmsg(msgid=297,anmode=aninfo,i1=mat_id)
114 ENDDO
115 ENDIF
116 ENDDO
117 ENDIF
118 ENDDO
119
120 ENDIF
121 END DO
122 ELSEIF (nstatall /= 0) THEN
123 DO j=1,npart
124 ipart_state(j) = 1
125 END DO
126 ENDIF
127
128 RETURN
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)