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)
41 use element_mod ,
only : nixr
45#include "implicit_f.inc"
54#include "vect01_c.inc"
57#include "random_c.inc"
61 INTEGER IX(NIXR,*),ITAB(*),IGEO(NPROPGI,*),IPM(NPROPMI,*)
63 . OFF(*), GEO(NPROPG,*), X(3,*), X0(*), Y0(*), Z0(*), SKEW(LSKEW,*)
65 . rloc(3,*),iposx(5,*) ,iposy(5,*),
66 . iposz(5,*),iposxx(5,*),iposyy(5,*),iposzz(5,*), eint6(6,*),
71 INTEGER I, J, NG, I1, I2, I3, ISK, IALIGN, USENS, MTYP, IGTYP
75 . nrloc(mvsiz),prvc(3,mvsiz),nprvc(mvsiz)
79 noise = two*sqrt(three)*xalea
92 IF (codvers >= 44)
THEN
121 x0(i)=sqrt(x1**2+y1**2+z1**2)
123 IF (x0(i) < em15 .OR. x0(i) <=
noise)
THEN
132 igtyp = igeo(11,ix(1,j))
133 IF (igtyp == 23)
THEN
134 mtyp = ipm(2,ix(5,j))
139 IF (mtyp /= 114)
THEN
142 . msgtype=msgwarning,
143 . anmode=aninfo_blind_1,
149 rloc(1,i)=x(1,i3)-x(1,i1)
150 rloc(2,i)=x(2,i3)-x(2,i1)
151 rloc(3,i)=x(3,i3)-x(3,i1)
152 nrloc(i)=rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2
153 prvc(1,i)=y1*rloc(3,i)-z1*rloc(2,i)
154 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
155 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
156 nprvc(i)=prvc(1,i)**2+prvc(2,i)**2+prvc(3,i)**2
157 IF (sqrt(nprvc(i))/nrloc(i)/x0(i) < em5)
THEN
162 . msgtype=msgwarning,
163 . anmode=aninfo_blind_1,
169 rloc(1,i)=skew(4,isk)
170 rloc(2,i)=skew(5,isk)
171 rloc(3,i)=skew(6,isk)
172 nrloc(i)=rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2
173 prvc(1,i)=y1*rloc(3,i)-z1*rloc(2,i)
174 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
175 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
176 nprvc(i)=prvc(1,i)**2+prvc(2,i)**2+prvc(3,i)**2
178 IF (sqrt(nprvc(i)/nrloc(i))/x0(i) < em5)
THEN
183 . msgtype=msgwarning,
184 . anmode=aninfo_blind_1,
187 WRITE(iout,1300)ix(nixr,j)
195 rloc(1,i)=skew(4,isk)
196 rloc(2,i)=skew(5,isk)
197 rloc(3,i)=skew(6,isk)
198 nrloc(i)=rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2
199 prvc(1,i)=y1*rloc(3,i)-z1*rloc(2,i)
200 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
201 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
202 nprvc(i)=prvc(1,i)**2+prvc(2,i)**2+prvc(3,i)**2
203 IF (sqrt(nprvc(i)/nrloc(i))/x0(i) < em5)
THEN
208 . msgtype=msgwarning,
209 . anmode=aninfo_blind_1,
213 WRITE(iout,1300)ix(nixr,j)
215 WRITE(iout,1400)ix(nixr,j)
223 rloc(1,i)=skew(1,isk)
224 rloc(2,i)=skew(2,isk)
225 rloc(3,i)=skew(3,isk)
227 WRITE(iout,1350)ix(nixr,j)
229 WRITE(iout,1450)ix(nixr,j)
231 prvc(1,i)=y1*rloc(3,i)-z1*rloc(2,i)
232 prvc(2,i)=z1*rloc(1,i)-x1*rloc(3,i)
233 prvc(3,i)=x1*rloc(2,i)-y1*rloc(1,i)
238 rloc(1,i)=prvc(2,i)*z1-prvc(3,i)*y1
239 rloc(2,i)=prvc(3,i)*x1-prvc(1,i)*z1
240 rloc(3,i)=prvc(1,i)*y1-prvc(2,i)*x1
241 nrloc(i)=sqrt(rloc(1,i)**2+rloc(2,i)**2+rloc(3,i)**2)
242 rloc(1,i)=rloc(1,i)/nrloc(i)
243 rloc(2,i)=rloc(2,i)/nrloc(i)
244 rloc(3,i)=rloc(3,i)/nrloc(i)
250 1300
FORMAT(/,
' ** INFO: SPRING ELEMENT:',i10,/,
251 .
' SECOND AXIS OF SKEW FRAME AND SPRING AXIS ARE USED',
252 .
' TO DEFINE SPRING FRAME')
253 1350
FORMAT(/,
' ** INFO: SPRING ELEMENT:',i10,/,
254 .
' FIRST 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)