31
32
33
34#include "implicit_f.inc"
35
36
37
38#include "units_c.inc"
39
40
41
42 INTEGER DN, NSN, FXBNOD(*), NME, NMOD, ISH, IFILE, NFX, IRCM
44 . fxbdep(*), fxbrpm(*), x(3,*), d(3,*), fxbmod(*)
45
46
47
48 INTEGER I,II,IAD,LMOD,N,NDDL,J
50 . dt(3,dn), r(9), vmod(dn*6), vv(6)
51
52 DO i=1,9
53 r(i)=fxbrpm(i+1)
54 ENDDO
55 lmod=(dn+nsn)*6
56
57 DO i=1,dn
58 dt(1,i)=zero
59 dt(2,i)=zero
60 dt(3,i)=zero
61 ENDDO
62 DO i=1,12
63 IF (ifile==0) THEN
64 iad=(i-1)*lmod+nsn*6
65 DO ii=1,dn*6
66 vmod(ii)=fxbmod(iad+ii)
67 ENDDO
68 ELSEIF (ifile==1) THEN
69 iad=0
70 DO ii=1,dn
71 ircm=ircm+1
72 READ(ifxm,rec=ircm) (vv(j),j=1,6)
73 DO j=1,6
74 vmod(iad+j)=vv(j)
75 ENDDO
76 iad=iad+6
77 ENDDO
78 ENDIF
79 iad=0
80 DO ii=1,dn
81 dt(1,ii)=dt(1,ii)+fxbdep(i)*vmod(iad+1)
82 dt(2,ii)=dt(2,ii)+fxbdep(i)*vmod(iad+2)
83 dt(3,ii)=dt(3,ii)+fxbdep(i)*vmod(iad+3)
84 iad=iad+6
85 ENDDO
86 ENDDO
87 IF (ish>0.AND.ifile==1) THEN
88 DO i=1,3
89 DO ii=1,dn
90 ircm=ircm+1
91 ENDDO
92 ENDDO
93 ENDIF
94
95 IF (nmod>0) THEN
96 DO i=1,nmod
97 IF (ifile==0) THEN
98 iad=(nme+i-1)*lmod+nsn*6
99 DO ii=1,dn*6
100 vmod(ii)=fxbmod(iad+ii)
101 ENDDO
102 ELSEIF (ifile==1) THEN
103 iad=0
104 DO ii=1,dn
105 ircm=ircm+1
106 READ(ifxm,rec=ircm) (vv(j),j=1,6)
107 DO j=1,6
108 vmod(iad+j)=vv(j)
109 ENDDO
110 iad=iad+6
111 ENDDO
112 ENDIF
113 iad=0
114 DO ii=1,dn
115 dt(1,ii)=dt(1,ii)+fxbdep(nme+i)*
116 . (r(1)*vmod(iad+1)+r(2)*vmod(iad+2)+
117 . r(3)*vmod(iad+3))
118 dt(2,ii)=dt(2,ii)+fxbdep(nme+i)*
119 . (r(4)*vmod(iad+1)+r(5)*vmod(iad+2)+
120 . r(6)*vmod(iad+3))
121 dt(3,ii)=dt(3,ii)+fxbdep(nme+i)*
122 . (r(7)*vmod(iad+1)+r
123 . r(9)*vmod(iad+3))
124 iad=iad+6
125 ENDDO
126 ENDDO
127 ENDIF
128 DO i=1,dn
129 ii=nsn+i
130 n=fxbnod(ii)
131 x(1,n)=x(1,n)-d(1,n)
132 x(2,n)=x(2,n)-d(2,n)
133 x(3,n)=x(3,n)-d(3,n)
134 d(1,n)=dt(1,i)
135 d(2,n)=dt(2,i)
136 d(3,n)=dt(3,i)
137 x(1,n)=x(1,n)+dt(1,i)
138 x(2,n)=x(2,n)+dt(2,i)
139 x(3,n)=x(3,n)+dt(3,i)
140 ENDDO
141
142 RETURN