37
38
39
41 use element_mod , only : nixr
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "mvsiz_p.inc"
50
51
52
53#include "scr03_c.inc"
54#include "vect01_c.inc"
55#include "param_c.inc"
56#include "units_c.inc"
57#include "random_c.inc"
58
59
60
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,*),
67 . x1phi,y1phi,z1phi
68
69
70
71 INTEGER I, J, NG, I1, I2, I3, ISK, IALIGN, USENS, MTYP, IGTYP
72
74 . x1, y1, z1,
75 . nrloc(mvsiz),prvc(3,mvsiz),nprvc(mvsiz)
78
79 noise = two*sqrt(three)*xalea
80
81 DO i=lft,llt
82 j=i+nft
83 usens=igeo(3,ix(1,j))
84 IF (usens <= 0) THEN
85
86 off(i)=one
87 ELSE
88 off(i)=-ten
89 ENDIF
90 ENDDO
91
92 IF (codvers >= 44) THEN
93 DO j=1,6
94 DO i=lft,llt
95 eint6(j,i)=zero
96 ENDDO
97 ENDDO
98 ENDIF
99
100 DO j=1,5
101 DO i=lft,llt
102 iposx(j,i)=zero
103 iposy(j,i)=zero
104 iposz(j,i)=zero
105 iposxx(j,i)=zero
106 iposyy(j,i)=zero
107 iposzz(j,i)=zero
108 ENDDO
109 ENDDO
110
111 DO i=lft,llt
112 j=i+nft
113 ng=ix(1,j)
114 isk=igeo(2,ng)
115 i1=ix(2,j)
116 i2=ix(3,j)
117 i3=ix(4,j)
118 x1=x(1,i2)-x(1,i1)
119 y1=x(2,i2)-x(2,i1)
120 z1=x(3,i2)-x(3,i1)
121 x0(i)=sqrt(x1**2+y1**2+z1**2)
122 ialign=0
123 IF (x0(i) < em15 .OR. x0(i) <=
noise)
THEN
124
125 rloc(1,i)= one
126 rloc(2,i)= zero
127 rloc(3,i)= zero
128
129
130
131
132 igtyp = igeo(11,ix(1,j))
133 IF (igtyp == 23) THEN
134 mtyp = ipm(2,ix(5,j))
135 ELSE
136 mtyp = 0
137 ENDIF
138
139 IF (mtyp /= 114) THEN
140
142 . msgtype=msgwarning,
143 . anmode=aninfo_blind_1,
144 . i1=ix(nixr,j))
145 ENDIF
146 ELSE
147
148 IF (i3 /= 0) THEN
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
158
159
160
162 . msgtype=msgwarning,
163 . anmode=aninfo_blind_1,
164 . i1=ix(nixr,j),
165 . i2=itab(i1),
166 . i3=itab(i2),
167 . i4=itab(i3))
168
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
177
178 IF (sqrt(nprvc(i)/nrloc(i))/x0(i) < em5) THEN
179
180
181
183 . msgtype=msgwarning,
184 . anmode=aninfo_blind_1,
185 . i1=ix(nixr,j))
186 ELSE
187 WRITE(iout,1300)ix(nixr,j)
188 ialign=1
189 ENDIF
190
191 ELSE
192 ialign=1
193 ENDIF
194 ELSE
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
204
205
206
208 . msgtype=msgwarning,
209 . anmode=aninfo_blind_1,
210 . i1=ix(nixr,j))
211 ELSE
212 IF(isk /= 1) THEN
213 WRITE(iout,1300)ix(nixr,j)
214 ELSE
215 WRITE(iout,1400)ix(nixr,j)
216 ENDIF
217 ialign=1
218 ENDIF
219 ENDIF
220
221
222 IF (ialign /= 1)THEN
223 rloc(1,i)=skew(1,isk)
224 rloc(2,i)=skew(2,isk)
225 rloc(3,i)=skew(3,isk)
226 IF(isk /= 1) THEN
227 WRITE(iout,1350)ix(nixr,j)
228 ELSE
229 WRITE(iout,1450)ix(nixr,j)
230 ENDIF
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)
234 ENDIF
235 ENDIF
236
237
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)
245
246 ENDDO
247
248 RETURN
249
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'/)
262
subroutine noise(dt2r, in, j, buf, v, a, ixs, elbuf_tab, iparg, weight, ixq)
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)