38 character*20 sideload(*)
39 character*80 amname(*)
41 integer iamforc(*),iamload(2,*),iamt1(*),nelemload(2,*),
42 & nam,i,istart,iend,id,nforc,nload,nk,namta(3,*),ithermal,
43 & nmethod,iamt1i,iamboun(*),nboun,iamforci,iambouni,
44 & iamloadi1,iamloadi2,ibody(3,*),itg(*),ntg,idof,
45 & nbody,iambodyi,nodeboun(*),ndirboun(*),nodeforc(2,*),
46 & ndirforc(*),istep,iinc,msecpt,node,j,ikboun(*),ilboun(*),
47 & ipresboun,mi(*),iabsload,iprescribedboundary,ntrans,inotr(2,*),
48 & nactdof(0:mi(2),*),ipobody(2,*),iponoel(*),inoel(2,*)
50 real*8 xforc(*),xforcact(*),xload(2,*),xloadact(2,*),
51 & t1(*),t1act(*),amta(2,*),ampli(*),time,xforcdiff(*),
52 & xforcold(*),xloadold(2,*),t1old(*),reltime,xloaddiff(2,*),
53 & xbounold(*),xboun(*),xbounact(*),ttime,dtime,reftime,
54 & xbody(7,*),xbodyold(7,*),xbodydiff(7,*),t1diff(*),
55 & xbodyact(7,*),co(3,*),vold(0:mi(2),*),abqtime(2),coords(3),
56 & xboundiff(*),trab(7,*), veold(0:mi(2),*),bcont(*),fn(0:mi(2),*)
68 if(namta(3,i).lt.0)
then 73 if(abs(namta(3,i)).ne.i)
then 74 reftime=reftime-amta(1,namta(1,i))
75 istart=namta(1,abs(namta(3,i)))
76 iend=namta(2,abs(namta(3,i)))
78 call uamplitude(reftime,amname(namta(3,i)),ampli(i))
89 call identamta(amta,reftime,istart,iend,id)
91 ampli(i)=amta(2,istart)
92 elseif(id.eq.iend)
then 95 ampli(i)=amta(2,id)+(amta(2,id+1)-amta(2,id))
96 & *(reftime-amta(1,id))/(amta(1,id+1)-amta(1,id))
102 if(iprescribedboundary.eq.1)
then 104 if((xboun(i).lt.1.2357111318d0).and.
105 & (xboun(i).gt.1.2357111316d0))
then 114 call nident(itg,node,ntg,id)
116 if(itg(id).eq.node)
then 122 abqtime(2)=ttime+time
133 coords(j)=co(j,node)+vold(j,node)
137 if(iabsload.eq.0)
then 138 xboundiff(i)=xbounact(i)
140 xboundiff(i)=xbounact(i)-xboundiff(i)
142 if(ndirboun(i).eq.0)
then 143 call utemp(xbounact(i),msecpt,istep,iinc,abqtime,node,
144 & coords,vold,mi,iponoel,inoel,
145 & ipobody,xbodyact,ibody)
147 call uboun(xbounact(i),istep,iinc,abqtime,node,
148 & ndirboun(i),coords,vold,mi,iponoel,inoel,
149 & ipobody,xbodyact,ibody)
151 xboundiff(i)=xbounact(i)-xboundiff(i)
161 if(iabsload.eq.0)
then 162 xboundiff(i)=xbounact(i)
164 xboundiff(i)=xbounact(i)-xboundiff(i)
166 if(iambouni.gt.0)
then 167 xbounact(i)=xboun(i)*ampli(iambouni)
168 elseif(nmethod.eq.1)
then 169 xbounact(i)=xbounold(i)+
170 & (xboun(i)-xbounold(i))*reltime
174 xboundiff(i)=xbounact(i)-xboundiff(i)
181 if(ndirforc(i).eq.0)
then 182 if((xforc(i).lt.1.2357111318d0).and.
183 & (xforc(i).gt.1.2357111316d0))
then 193 call nident(itg,node,ntg,id)
195 if(itg(id).eq.node)
then 201 abqtime(2)=ttime+time
212 coords(j)=co(j,node)+vold(j,node)
216 if(iabsload.eq.0)
then 217 xforcdiff(i)=xforcact(i)
219 xforcdiff(i)=xforcact(i)-xforcdiff(i)
221 call cflux(xforcact(i),msecpt,istep,iinc,abqtime,node,
223 xforcdiff(i)=xforcact(i)-xforcdiff(i)
227 if((xforc(i).lt.1.2357111318d0).and.
228 & (xforc(i).gt.1.2357111316d0))
then 236 abqtime(2)=ttime+time
239 coords(j)=co(j,node)+vold(j,node)
242 if(iabsload.eq.0)
then 243 xforcdiff(i)=xforcact(i)
245 xforcdiff(i)=xforcact(i)-xforcdiff(i)
247 call cload(xforcact(i),istep,iinc,abqtime,node,
248 & ndirforc(i),coords,vold,mi,ntrans,trab,inotr,veold)
249 xforcdiff(i)=xforcact(i)-xforcdiff(i)
259 if(iabsload.eq.0)
then 260 xforcdiff(i)=xforcact(i)
262 xforcdiff(i)=xforcact(i)-xforcdiff(i)
264 if(iamforci.gt.0)
then 265 xforcact(i)=xforc(i)*ampli(iamforci)
266 elseif(nmethod.eq.1)
then 267 xforcact(i)=xforcold(i)+
268 & (xforc(i)-xforcold(i))*reltime
272 xforcdiff(i)=xforcact(i)-xforcdiff(i)
279 if(sideload(i)(3:4).eq.
'NU')
then 288 if(sideload(i)(3:4).eq.
'NP')
then 291 call nident(ikboun,idof,nboun,id)
293 if(ikboun(id).eq.idof)
then 295 if(iabsload.eq.0)
then 296 xloaddiff(1,i)=xloadact(1,i)
298 xloaddiff(1,i)=xloadact(1,i)-xloaddiff(1,i)
300 xloadact(1,i)=xbounact(ilboun(id))
301 xloaddiff(1,i)=xloadact(1,i)-xloaddiff(1,i)
306 if(ipresboun.eq.0)
then 308 iamloadi1=iamload(1,i)
309 iamloadi2=iamload(2,i)
315 if(iabsload.eq.0)
then 316 xloaddiff(1,i)=xloadact(1,i)
318 xloaddiff(1,i)=xloadact(1,i)-xloaddiff(1,i)
320 if(iamloadi1.gt.0)
then 321 xloadact(1,i)=xload(1,i)*ampli(iamloadi1)
322 elseif(nmethod.eq.1)
then 323 xloadact(1,i)=xloadold(1,i)+
324 & (xload(1,i)-xloadold(1,i))*reltime
326 xloadact(1,i)=xload(1,i)
328 xloaddiff(1,i)=xloadact(1,i)-xloaddiff(1,i)
330 if(iabsload.eq.0)
then 331 xloaddiff(2,i)=xloadact(1,i)
333 xloaddiff(2,i)=xloadact(2,i)-xloaddiff(2,i)
335 if(iamloadi2.gt.0)
then 336 xloadact(2,i)=xload(2,i)*ampli(iamloadi2)
337 elseif(nmethod.eq.1)
then 338 xloadact(2,i)=xload(2,i)
340 xloadact(2,i)=xload(2,i)
342 xloaddiff(2,i)=xloadact(2,i)-xloaddiff(2,i)
353 if(iabsload.eq.0)
then 354 xbodydiff(1,i)=xbodyact(1,i)
356 xbodydiff(1,i)=xbodyact(1,i)-xbodydiff(1,i)
358 if(iambodyi.gt.0)
then 359 xbodyact(1,i)=xbody(1,i)*ampli(iambodyi)
360 elseif(nmethod.eq.1)
then 361 xbodyact(1,i)=xbodyold(1,i)+
362 & (xbody(1,i)-xbodyold(1,i))*reltime
364 xbodyact(1,i)=xbody(1,i)
366 xbodydiff(1,i)=xbodyact(1,i)-xbodydiff(1,i)
subroutine uamplitude(time, name, amplitude)
Definition: uamplitude.f:20
subroutine cflux(flux, msecpt, kstep, kinc, time, node, coords, vold, mi)
Definition: cflux.f:21
subroutine utemp(temp, msecpt, kstep, kinc, time, node, coords, vold, mi, iponoel, inoel, ipobody, xbody, ibody)
Definition: utemp.f:21
subroutine identamta(amta, reftime, istart, iend, id)
Definition: identamta.f:26
subroutine nident(x, px, n, id)
Definition: nident.f:26
subroutine uboun(boun, kstep, kinc, time, node, idof, coords, vold, mi, iponoel, inoel, ipobody, xbody, ibody)
Definition: uboun.f:21
subroutine cload(xload, kstep, kinc, time, node, idof, coords, vold, mi, ntrans, trab, inotr, veold)
Definition: cload.f:21