40
41
42
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "param_c.inc"
53
54
55
56#include "vect01_c.inc"
57#include "com04_c.inc"
58#include "scr17_c.inc"
59#include "units_c.inc"
60
61
62
63 INTEGER NEL,NUVAR,IPROP,IXR(NIXR,*),NPBY(NNPBY,NRBODY),LPBY(*),
64 . ITAB(*),IXR_KJ(5,*),IGEO(NPROPGI)
66 . rby(nrby,nrbody),stifr(*),uvar(nuvar,*),gmass(*),ms(*),in(*)
67
68
69
70 INTEGER I,II,IEL,J,K,N,L,S,NN,NSL,IERROR,NODES,USR,
71 . IDSK(2),ISK,NSK,ISK2,JTYP,M(2),(2),NODF(3),
72 . RESET_U_GEO,GET_U_SKEW,SRB(6),NO(3),IDSKRB(2),
73 . IDRB(2),ERR_FLG,N1,N2,N3,N4,ID_KJ,NUMEL_KJ,IELUSR,
74 . RB1,RB2,IPID,IDSK2
75
77 . mass,iner,rm,ri,knn,kr,l2,u(lskew),q(lskew),get_u_geo,v(lskew),
78 . xsk1,xsk2,len
79
80 INTEGER ID
81 CHARACTER(LEN=NCHARTITLE) :: TITR
82
83 INTEGER FIND_RBY
85 DATA nodes/2/
86
87
89 CALL fretitl2(titr,igeo(npropgi-ltitr+1),ltitr)
90
91 DO iel=1,nel
92 l2 = 0.
93 rm = 1.e30
94 ri = 1.e30
95 idrb(1)=0
96 idrb(2)=0
97
98 DO i=1,nodes
99 m(i) = 0
100 k = 0
101 nod(i)=ixr(1+i,nft+iel)
102
103 DO n=1,nrbody
104 nsl=npby(2,n)
105 IF (npby(1,n)==nod(i)) THEN
106
107 idrb(i)=-n
108 uvar(37+i,iel)= n
109 EXIT
110 ENDIF
111
112 DO j=1,nsl
113 nn = lpby(j+k)
114 IF(nn==nod(i)) THEN
115 idrb(i)=n
116 m(i) = npby(1,n)
117 mass = rby(14,n)
118 iner = (rby(10,n)+rby(11,n)+rby(12,n))/3.0
119
120 uvar(33+i,iel)= mass
121 uvar(35+i,iel)= iner
122 uvar(37+i,iel)= n
123
124 GOTO 100
125 ENDIF
126 ENDDO
127100 k = k+nsl
128 ENDDO
129
130
131 gmass(iel) = (uvar(34,iel)*uvar(35,iel))/
max(em20,uvar(34,iel)+uvar(35,iel))
132
133 IF (idrb(i)==0) THEN
134
135 uvar(33+i,iel)= ms(nod(i))
136 uvar(35+i,iel)= in(nod(i))
137 uvar(37+i,iel)= 0
138 IF (ms(nod(i)) <= em20) THEN
140 . msgtype=msgerror,
141 . anmode=aninfo_blind_2,
143 . c1=titr,
144 . i2=ixr(nixr,nft+iel),
145 . i3=itab(nod(i)))
146 ELSEIF (in(nod(i)) <= em20) THEN
148 . msgtype=msgwarning,
149 . anmode=aninfo_blind_2,
151 . c1=titr,
152 . i2=ixr(nixr,nft+iel),
153 . i3=itab(nod(i)))
154 ENDIF
155 ELSEIF (idrb(i) < 0) THEN
156
158 . msgtype=msgerror,
159 . anmode=aninfo_blind_2,
161 . c1=titr,
162 . i2=ixr(nixr,nft+iel),
163 . i3=itab(nod(i)))
164 ENDIF
165
166 ENDDO
167
168 ENDDO
169
170
171 DO iel=1,nel
172 ielusr = ixr(nixr,nft+iel)
173 rb1 = 0
174 rb2 = 0
175 IF (uvar(38,iel) > 0) rb1 = npby(6,nint(uvar(38,iel)))
176 IF (uvar(39,iel) > 0) rb2 = npby(6,nint(uvar(39,iel)))
177 n1 = itab(ixr(2,nft+iel))
178 n2 = itab(ixr(3,nft+iel))
179 n3 = 0
180 n4 = 0
181 IF (ixr(4,nft+iel)/=0) n3 = itab(ixr(4,nft+iel))
182 len=sqrt(uvar(1,iel)**2+uvar(2,iel)**2+uvar(3,iel)**2)
183 numel_kj = ixr_kj(1,numelr+1)
184 DO j=1,numel_kj
185 IF (ixr_kj(4,j)==ielusr) id_kj = j
186 END DO
187 IF (id_kj>0) THEN
188 IF (ixr_kj(1,id_kj)/=0) n4 = itab(ixr_kj(1,id_kj))
189 ENDIF
190 idsk2 = nint(get_u_geo(54,iprop))
191 IF (idsk2==0) THEN
192 WRITE(iout,2000)
193 WRITE(iout,'(1X,5I10,4X,2I10,2X,F16.7,2X,3F16.7)') ielusr,n1,
194 . n2,n3,n4,rb1,rb2,len,(uvar(21+k,iel),k=1,3)
195 WRITE(iout,'(2(95X,3F16.7/))') (uvar(21+k,iel),k=4,9)
196 ELSE
197 WRITE(iout,2100)
198 WRITE(iout,'(1X,5I10,4X,2I10,2X,F16.7,2X,F16.7,2X,3F16.7)') ielusr,n1,
199 . n2,n3,n4,rb1,rb2,len,uvar(7,iel),(uvar(21+k,iel),k=1,3)
200 WRITE(iout,'(2(95X,F16.7,2X,3F16.7))' ) uvar(8,iel) ,(uvar(21+k,iel),k=4,6)
201 WRITE(iout,'(2(95X,F16.7,2X,3F16.7/))') uvar(9,iel) ,(uvar(21+k,iel),k=7,9)
202 ENDIF
203 ENDDO
204
205
206
207 RETURN
208 2000 FORMAT(5x,'NUMBER',8x,'N1',8x,'N2',8x,'N3',8x,'N4',
209 . 8x,'RBODY1',4x,'RBODY2',12x,'LENGTH',13x,
210 . 'LOCAL SKEW (VECTORS)')
211
212 2100 FORMAT(5x,'NUMBER',8x,'N1',8x,'N2',8x,'N3',8x,'N4',
213 . 8x,'RBODY1',4x,'RBODY2',12x,'LENGTH',4x,'INITIAL ANGLES (RAD)',13x,
214 . 'LOCAL SKEW (VECTORS)')
215
216 RETURN
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)
integer function get_u_skew(idskw, n1, n2, n3, v)
integer function reset_u_geo(ivar, ip, a)