35
36
37
38
39
40
41
44
45
46
47#include "implicit_f.inc"
48
49
50
51#include "param_c.inc"
52#include "com01_c.inc"
53#include "com04_c.inc"
54#include "scr17_c.inc"
55
56
57
58 INTEGER,INTENT(IN) :: IXS(NIXS,NUMELS),IXQ(NIXQ,NUMELQ),IGEO(NPROPGI,NUMGEO)
59 INTEGER,INTENT(IN) :: ICODE(NUMNOD),ITAB(NUMNOD),NPBY(NNPBY,*),LPBY(
60INTEGER,INTENT(INOUT) :: NODPOR(*)
61 my_real,
INTENT(INOUT) :: geo(npropg,numgeo)
62
63
64
65 INTEGER, DIMENSION(NUMNOD) :: ITAG
66 INTEGER IG,N,I,J,K,IC,IC1,IC2,IC3,IC4,JWARN,IRB,KRB,P
67 INTEGER, DIMENSION(:,:),ALLOCATABLE :: INDEX
68 INTEGER IWORK(70000),IT
69 CHARACTER(len=nchartitle) :: TITR
70
71
72
73
74
75
76 numpor=0
77 DO i=1,numnod
78 itag(i)=0
79 END DO
80
81 DO ig=1,numgeo
82 IF(int(geo(12,ig)) /= 15)cycle
83 IF(n2d == 0)THEN
84 DO i=1,numels
85 IF(ixs(10,i) /= ig)cycle
86 DO j=2,9
87 IF(itag(ixs(j,i)) == 0)itag(ixs(j,i))=ig
88 END DO
89 END DO
90 ELSE
91 DO i=1,numelq
92 IF(ixq(6,i) /= ig)cycle
93 DO j=2,5
94 IF(itag(ixq(j,i)) == 0)itag(ixq(j,i))=ig
95 END DO
96 END DO
97 ENDIF
98
99
100
101
102 n=0
103 jwarn=0
104 DO i=1,numnod
105 IF(itag(i) /= ig)cycle
106 ic=icode(i)
107 ic1=ic/512
108 ic2=(ic-512*ic1)/64
109 ic3=(ic-512*ic1-64*ic2)/8
110 ic4=ic-512*ic1-64*ic2-8*ic3
111 IF(n2d == 0)THEN
112 IF(ic4 == 7)cycle
113 ELSE
114 IF(ic4 >= 6)cycle
115 ENDIF
116 IF(int(geo(30,ig)) /= 0 .AND. ic1 /= 0)THEN
117 jwarn = jwarn+1
118 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ig),ltitr)
119 CALL ancmsg(msgid=358,msgtype=msgwarning,anmode=aninfo_blind_2,i1=igeo(1,ig),c1=titr,i2=itab(i))
120 ENDIF
121 n=n+1
122 nodpor(numpor+n)=i
123 END DO
124
125
126
127
128
129 ALLOCATE(index(n,3))
130 DO i=1,n
131 index(i,3)=nodpor(numpor+i)
132 ENDDO
133 IF(n > 0)
CALL my_orders(0,iwork,index(1,3),index,n,1)
134 DO i=1,n
135 it = index(i,1)
136 nodpor(numpor+i)=index(it,3)
137 ENDDO
138 DEALLOCATE(index)
139
140
141
142 IF(jwarn > 0) THEN
143 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ig),ltitr)
144 CALL ancmsg(msgid=359,msgtype=msgwarning,anmode=aninfo,i1=igeo(1,ig),c1=titr,i2=jwarn)
145 ENDIF
146 geo(31,ig)=n+.1
147 numpor=numpor+n
148 irb=int(geo(29,ig))
149 IF(irb /= 0)THEN
150 k=1
151 DO krb=1,nrbykin
152 IF(npby(1,krb) == irb)THEN
153 geo(33,ig) = krb+ em01
154 geo(34,ig) = lpby(k)+em01
155 ENDIF
156 k=k+npby(2,krb)
157 END DO
158 IF(geo(33,ig) == zero)THEN
159 geo(29,ig)=em01
160 CALL fretitl2(titr,igeo(npropgi-ltitr+1,ig),ltitr)
161 CALL ancmsg(msgid=360,msgtype=msgwarning,anmode=aninfo_blind_1,i1=igeo(1,ig),c1=titr,i2=irb)
162 ELSE
163
164 DO p = 1, nspmd
166 ENDDO
167 ENDIF
168 ENDIF
169 END DO
170
171 RETURN
subroutine ifrontplus(n, p)
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)