33 SUBROUTINE r4buf3(OFF ,GEO ,X ,X0 ,Y0 ,
34 2 Z0 ,IX ,SKEW ,RLOC ,IPOSX ,
35 3 IPOSY,IPOSZ,IPOSXX,IPOSYY,IPOSZZ,
36 4 ITAB ,EINT6,IGEO ,IPM)
44#include "implicit_f.inc"
53#include "vect01_c.inc"
56#include "random_c.inc"
60 INTEGER IX(NIXR,*),ITAB(*),IGEO(NPROPGI,*),IPM(NPROPMI,*)
62 . OFF(*), GEO(NPROPG,*), X(3,*), X0(*), Y0(*), Z0(*), SKEW(LSKEW,*)
64 . rloc(3,*),iposx(5,*) ,iposy(5,*),
65 . iposz(5,*),iposxx(5,*),iposyy(5,*),iposzz(5,*), eint6(6,*),
70 INTEGER I, J, NG, I1, I2, I3, ISK, IALIGN, K, USENS, MID, MTYP, IGTYP
74 . nrloc(mvsiz),prvc(3,mvsiz),nprvc(mvsiz)
78 noise = two*sqrt(three)*xalea
91 IF (codvers >= 44)
THEN
120 x0(i)=sqrt(x1**2+y1**2+z1**2)
122 IF (x0(i) < em15 .OR. x0(i) <=
noise)
THEN
131 igtyp = igeo(11,ix(1,j))
132 IF (igtyp == 23)
THEN
133 mtyp = ipm(2,ix(5,j))
138 IF (mtyp /= 114)
THEN
141 . msgtype=msgwarning,
142 . anmode=aninfo_blind_1,
147 rloc(1,i)=x(1,i3)-x(1,i1)
148 rloc(2,i)=x(2,i3)-x(2,i1)
149 rloc(3,i)=x(3,i3)-x(3,i1)
150 nrloc(i)=rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2
151 prvc(1,i)=y1*rloc(3,i)-z1*rloc
152 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
153 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
154 nprvc(i)=prvc(1,i)**2+prvc(2,i)**2+prvc(3,i)**2
155 IF (sqrt(nprvc(i))/nrloc(i)/x0(i) < em5)
THEN
160 . msgtype=msgwarning,
161 . anmode=aninfo_blind_1,
167 rloc(1,i)=skew(4,isk)
168 rloc(2,i)=skew(5,isk)
169 rloc(3,i)=skew(6,isk)
170 nrloc(i)=rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2
171 prvc(1,i)=y1*rloc(3,i)-z1*rloc(2,i)
172 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
173 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
174 nprvc(i)=prvc(1,i)**2+prvc(2,i)**2+prvc(3,i)**2
175 IF (sqrt(nprvc(i)/nrloc(i))/x0(i) < em5)
THEN
180 . msgtype=msgwarning,
181 . anmode=aninfo_blind_1,
184 WRITE(iout,1300)ix(nixr,j)
185 rloc(1,i)=prvc(2,i)*z1-prvc(3,i)*y1
186 rloc(2,i)=prvc(3,i)*x1-prvc(1,i)*z1
187 rloc(3,i)=prvc(1,i)*y1-prvc(2,i)*x1
188 nrloc(i)=sqrt(rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2)
189 rloc(1,i)=rloc(1,i)/nrloc(i)
190 rloc(2,i)=rloc(2,i)/nrloc(i)
191 rloc(3,i)=rloc(3,i)/nrloc(i)
196 rloc(1,i)=prvc(2,i)*z1-prvc(3,i)*y1
197 rloc(2,i)=prvc(3,i)*x1-prvc(1,i)*z1
198 rloc(3,i)=prvc(1,i)*y1-prvc(2,i)*x1
199 nrloc(i)=sqrt(rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2)
200 rloc(1,i)=rloc(1,i)/nrloc(i)
201 rloc(2,i)=rloc(2,i)/nrloc(i)
202 rloc(3,i)=rloc(3,i)/nrloc(i)
205 ELSEIF (isk /= 1)
THEN
206 rloc(1,i)=skew(4,isk)
207 rloc(2,i)=skew(5,isk)
208 rloc(3,i)=skew(6,isk)
209 nrloc(i)=rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2
210 prvc(1,i)=y1*rloc(3,i)-z1*rloc(2,i)
211 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
212 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
213 nprvc(i)=prvc(1,i)**2+prvc(2,i)**2+prvc(3,i)**2
214 IF (sqrt(nprvc(i)/nrloc(i))/x0(i) < em5)
THEN
219 . msgtype=msgwarning,
220 . anmode=aninfo_blind_1,
223 WRITE(iout,1300)ix(nixr,j)
224 rloc(1,i)=prvc(2,i)*z1-prvc(3,i)*y1
225 rloc(2,i)=prvc(3,i)*x1-prvc(1,i)*z1
226 rloc(3,i)=prvc(1,i)*y1-prvc(2,i)*x1
227 nrloc(i)=sqrt(rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2)
228 rloc(1,i)=rloc(1,i)/nrloc(i)
229 rloc(2,i)=rloc(2,i)/nrloc
230 rloc(3,i)=rloc(3,i)/nrloc(i)
236 IF (abs(y1) < half*x0(i))
THEN
240 WRITE(iout,1400)ix(nixr,j)
245 WRITE(iout,1450)ix(nixr,j)
253 1300
FORMAT(/,
' ** INFO: SPRING ELEMENT:',i10,/,
254 .
' SECOND AXIS OF SKEW FRAME AND SPRING AXIS ARE USED',
255 .
' TO DEFINE SPRING FRAME')
256 1400
FORMAT(/,
' ** INFO: SPRING ELEMENT:',i10,/,
257 .
' GLOBAL Y AXIS AND SPRING AXIS ARE USED',
258 . ' to define spring frame
'/)
259 1450 FORMAT(/,' ** info: spring element:
',I10,/,
260 . ' global x axis and spring axis are used
',
261 . ' to define spring frame
'/)
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)