37
38
39
40 USE my_alloc_mod
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "param_c.inc"
51#include "com04_c.inc"
52#include "scr17_c.inc"
53
54
55
56 INTEGER IXR(NIXR,*), ITAB(*),
57 . IGEO(NPROPGI,*),IPM(NPROPMI,*),IPART(LIPART1,*),IPARTR(*),
58 . NPBY(NNPBY,*),LPBY(*)
59
61 . geo(npropg,*),pm(npropm,*),uparam(*),msr(*),inr(*),ms(*),in(*)
62
63
64
65 INTEGER I,NR,N1,N2,IPID,IGTYP,IMAT,MTN,IADBUF,IEQUI,IP,IPREV,
66 . K1,K11,K12,K13,K14,IERR2,N,M,NSL,IAD,NS,NERR
67 INTEGER WORK(70000)
68 INTEGER, ALLOCATABLE, DIMENSION(:) :: INDEX,ITRI,TAGSLV
69
71 . xkm, xcm, xkr, xcr
72 CHARACTER(LEN=NCHARTITLE)::TITL
73
74
75
76 CALL my_alloc(index,2*numelr)
77 CALL my_alloc(itri ,numelr)
78
79 CALL my_alloc(tagslv,numnod)
80 tagslv(1:numnod)=0
81 DO n=1,nrbykin
82 m =npby(1,n)
83 IF(npby(7,n)/=0.AND.ms(m)/=zero.AND.in(m)/=zero)THEN
84
85
86
87 nsl=npby(2,n)
88 iad=npby(11,n)
89 DO i=1,nsl
90 ns=lpby(iad+i)
91 tagslv(ns)=1
92 END DO
93 END IF
94 END DO
95
96 DO i=1,numelr
97 itri(i)=ipartr(i)
98 END DO
99
100 CALL my_orders( 0, work, itri, index, numelr , 1)
101
102 iprev=0
103 nerr =0
104 DO i=1,numelr
105 nr=index(i)
106 ipid = ixr(1,nr)
107 igtyp = igeo(11,ipid)
108 imat = ixr(5,nr)
109 ip = ipartr(nr)
110 ierr2 = 0
111 IF(igtyp==23)THEN
112
113 iadbuf = ipm(7,imat) - 1
114 mtn = ipm(2,imat)
115
116 k1 = 4
117 k11 = 64
118 k12 = k11 + 6
119 k13 = k12 + 6
120 k14 = k13 + 6
121
122 IF(mtn == 108) THEN
123 iequi = uparam(iadbuf+2)
124 n1 =ixr(2,nr)
125 n2 =ixr(3,nr)
126 IF((tagslv(n1)==0.AND.(ms(n1)==zero.OR.in
127 . (tagslv(n2)==0.AND.(ms(n2)==zero.OR.in(n2)==zero)))THEN
128
129 IF(ip/=iprev.AND.nerr/=0)THEN
130 iprev=ip
131
132 CALL fretitl2(titl,ipart(lipart1-ltitr+1,ip),ltitr)
134 . msgtype=msgerror,
135 . anmode=aninfo_blind_1,
136 . i1=ipart(4,ip),
137 . c1=titl)
138
139
141 . msgtype=msgerror,
142 . anmode=aninfo_blind_1,
143 . prmod=msg_print)
144
145 nerr = 0
146
147 END IF
148 xkm=
max(uparam(iadbuf + k11 + 1)*uparam(iadbuf + k1 + 1),
149 . uparam(iadbuf + k11 + 2)*uparam(iadbuf + k1 + 2),
150 . uparam(iadbuf + k11 + 3)*uparam(iadbuf + k1 + 3))
151 xcm=
max(uparam(iadbuf + k12 + 1),uparam(iadbuf + k12 + 2),uparam(iadbuf + k12 + 3))
152 xkr=
max(uparam(iadbuf + k11 + 4)*uparam(iadbuf + k1 + 4),
153 . uparam(iadbuf + k11 + 5)*uparam(iadbuf + k1 + 5),
154 . uparam(iadbuf + k11 + 6)*uparam(iadbuf + k1 + 6))
155 xcr=
max(uparam(iadbuf + k12 + 4),uparam(iadbuf + k12 + 5),uparam(iadbuf + k12 + 6))
156 IF((tagslv(n1)==0.AND.ms(n1)==zero).OR.(tagslv(n2)==0.AND.ms(n2)==zero))THEN
157 IF(xkm/=zero.OR.xcm/=zero)ierr2=ierr2+1
158 END IF
159 IF((tagslv(n1)==0.AND.in(n1)==zero).OR.(tagslv(n2)==0.AND.in(n2)==zero))THEN
160 IF(xkr/=zero.OR.xcr/=zero.OR.(iequi/=0.AND.(xkm/=zero.OR.xcm/=zero)))ierr2=ierr2+1
161 END IF
162 END IF
163 END IF
164 END IF
165 IF(ierr2/=0)THEN
166 nerr=nerr+1
168 . msgtype=msgerror,
169 . anmode=aninfo_blind_1,
170 . i1=ixr(nixr,nr),
171 . i2=itab(n1),
172 . i3=itab(n2),
173 . prmod=msg_cumu)
174 END IF
175 END DO
176
178 . msgtype=msgerror,
179 . anmode=aninfo_blind_1,
180 . prmod=msg_print)
181
182 DEALLOCATE(index,itri,tagslv)
183
184 RETURN
void my_orders(int *mode, int *iwork, int *data, int *index, int *n, int *irecl)
integer, parameter nchartitle
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)