36
37
38
39#include "implicit_f.inc"
40
41
42
43#include "param_c.inc"
44#include "com04_c.inc"
45
46
47
48 INTEGER NSTRF(*),NPRW(*),ITAB(*)
50 . rwbuf(nrwlp,*),x(3,*),xmin ,ymin ,zmin ,xmax ,
ymax, zmax
51
52
53
54 INTEGER J, I, K, K0, K1, N, NSEG, N1, N2, N3, N4,MSR, ITYP
56 . xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3,
57 . xx4, yy4, zz4, d13, xxc, yyc, zzc, al4,xwl,ywl,zwl,
58 . pmain,loc_proc
59
61 . xsec(3,3,nsect)
62 REAL R4,SBUF(3*NSECT)
63
64 k1=1
65
66 k1 = 33
67 DO i=1,nsect
68 n1 = nstrf(k1+1)
69 n2 = nstrf(k1+2)
70 n3 = nstrf(k1+3)
71 xx1=x(1,n1)
72 yy1=x(2,n1)
73 zz1=x(3,n1)
74 xx2=x(1,n2)
75 yy2=x(2,n2)
76 zz2=x(3,n2)
77 xx3=x(1,n3)
78 yy3=x(2,n3)
79 zz3=x(3,n3)
80 xx4=xx2-xx1
81 yy4=yy2-yy1
82 zz4=zz2-zz1
83 al4=sqrt(xx4**2+yy4**2+zz4**2)
87
88 d13=(xx3-xx1)*xx4+(yy3-yy1)*yy4+(zz3-zz1)*zz4
89 xxc=xx1+d13*xx4
90 yyc=yy1+d13*yy4
91 zzc=zz1+d13*zz4
92
93 r4 = xxc
95 r4 = yyc
97 r4 = zzc
99
100
101 k1= nstrf(k1+22)+2
102 ENDDO
103
104 k=1
105 DO n=1,nrwall
106 n2=n +nrwall
107 n3=n2+nrwall
108 n4=n3+nrwall
109 msr = nprw(n3)
110 IF(msr==0)THEN
111 xwl=rwbuf(4,n)
112 ywl=rwbuf(5,n)
113 zwl=rwbuf(6,n)
114 ELSE
115 xwl=x(1,msr)
116 ywl=x(2,msr)
117 zwl=x(3,msr)
118 ENDIF
119 ityp= nprw(n4)
120 IF(ityp==4)THEN
121 xwl = xwl + half*(rwbuf(7,n)+rwbuf(10,n))
122 ywl = ywl + half*(rwbuf(8,n)+rwbuf(11,n))
123 zwl = zwl + half*(rwbuf(9,n)+rwbuf(12,n))
124 ENDIF
125 k=k+nprw(n)
126 IF(nprw(n4)==-1)k=k+nint(rwbuf(8,n))
127 r4 = xwl
129 r4 = ywl
131 r4 = zwl
133 ENDDO
134
135 k=1
136 DO n=1,nrwall
137 n2=n +nrwall
138 n3=n2+nrwall
139 n4=n3+nrwall
140 ityp= nprw(n4)
141
142 IF(iabs(ityp)==1)THEN
143 CALL dxwall(x,rwbuf(1,n),nprw(n3),xmin ,ymin ,
144 . zmin ,xmax ,
ymax , zmax)
145 ELSEIF(ityp==2)THEN
146 CALL dxwalc(x,rwbuf(1,n),nprw(n3),xmin ,ymin ,
147 . zmin ,xmax ,
ymax , zmax)
148 ELSEIF(ityp==3)THEN
149 CALL dxwals(x,rwbuf(1,n),nprw(n3))
150 ELSEIF(ityp==4)THEN
151 CALL dxwalp(x,rwbuf(1,n),nprw(n3))
152 ENDIF
153 k=k+nprw(n)
154 IF(nprw(n4)==-1)k=k+nint(rwbuf(8,n))
155 ENDDO
156
157 RETURN
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
subroutine dxwalc(x, rwl, msr, xmin, ymin, zmin, xmax, ymax, zmax)
subroutine dxwall(x, rwl, msr, xmin, ymin, zmin, xmax, ymax, zmax)
subroutine dxwalp(x, rwl, msr)
subroutine dxwals(x, rwl, msr)
void write_r_c(float *w, int *len)