37 character*20 sideload(*)
38 character*80 amname(*)
39 character*81 tieset(3,*)
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,one,
45 & nbody,iambodyi,nodeboun(*),ndirboun(*),nodeforc(2,*),
46 & ndirforc(*),istep,iinc,msecpt,node,j,ikboun(*),ilboun(*),
47 & ipresboun,mi(*),ntrans,inotr(2,*),idummy,integerglob(*),
48 & istartset(*),iendset(*),ialset(*),ntie,iselect(1),
49 & nmpc,ikmpc(*),ilmpc(*),nodempc(3,*),k,ist,index,ipompc(*),
50 & inomat(*),ipobody(2,*),iponoel(*),inoel(2,*)
52 real*8 xforc(*),xforcact(*),xload(2,*),xloadact(2,*),
53 & t1(*),t1act(*),amta(2,*),ampli(*),time,fixed_temp,
54 & xforcold(*),xloadold(2,*),t1old(*),reltime,coefmpc(*),
55 & xbounold(*),xboun(*),xbounact(*),ttime,dtime,reftime,
56 & xbody(7,*),xbodyold(7,*),xbodyact(7,*),co(3,*),
57 & vold(0:mi(2),*),abqtime(2),coords(3),trab(7,*),
58 & veold(0:mi(2),*),ddummy,doubleglob(*),h0scale
73 if(namta(3,i).lt.0)
then 78 if(abs(namta(3,i)).ne.i)
then 79 reftime=reftime-amta(1,namta(1,i))
80 istart=namta(1,abs(namta(3,i)))
81 iend=namta(2,abs(namta(3,i)))
83 call uamplitude(reftime,amname(namta(3,i)),ampli(i))
94 call identamta(amta,reftime,istart,iend,id)
96 ampli(i)=amta(2,istart)
97 elseif(id.eq.iend)
then 100 ampli(i)=amta(2,id)+(amta(2,id+1)-amta(2,id))
101 & *(reftime-amta(1,id))/(amta(1,id+1)-amta(1,id))
108 if((xboun(i).lt.1.2357111318d0).and.
109 & (xboun(i).gt.1.2357111316d0))
then 118 call nident(itg,node,ntg,id)
120 if(itg(id).eq.node)
then 126 abqtime(2)=ttime+time
137 coords(j)=co(j,node)+vold(j,node)
141 if(ndirboun(i).eq.0)
then 142 call utemp(xbounact(i),msecpt,istep,iinc,abqtime,node,
143 & coords,vold,mi,iponoel,inoel,
144 & ipobody,xbodyact,ibody)
146 call uboun(xbounact(i),istep,iinc,abqtime,node,
147 & ndirboun(i),coords,vold,mi,iponoel,inoel,
148 & ipobody,xbodyact,ibody)
152 if((xboun(i).lt.1.9232931375d0).and.
153 & (xboun(i).gt.1.9232931373d0))
then 162 call nident(itg,node,ntg,id)
164 if(itg(id).eq.node)
then 178 iselect(1)=ndirboun(i)+1
180 & coords,iselect,one,node,tieset,istartset,iendset,
181 & ialset,ntie,entity)
184 if(nmethod.eq.1)
then 185 xbounact(i)=xbounold(i)+
186 & (xbounact(i)-xbounold(i))*reltime
196 if(iambouni.gt.0)
then 197 xbounact(i)=xboun(i)*ampli(iambouni)
203 if(inomat(node).eq.0) h0scale=ampli(iambouni)
205 elseif(nmethod.eq.1)
then 206 xbounact(i)=xbounold(i)+
207 & (xboun(i)-xbounold(i))*reltime
216 if(ndirforc(i).eq.0)
then 217 if((xforc(i).lt.1.2357111318d0).and.
218 & (xforc(i).gt.1.2357111316d0))
then 227 call nident(itg,node,ntg,id)
229 if(itg(id).eq.node)
then 235 abqtime(2)=ttime+time
246 coords(j)=co(j,node)+vold(j,node)
250 call cflux(xforcact(i),msecpt,istep,iinc,abqtime,node,
255 if((xforc(i).lt.1.2357111318d0).and.
256 & (xforc(i).gt.1.2357111316d0))
then 263 abqtime(2)=ttime+time
266 coords(j)=co(j,node)+vold(j,node)
269 call cload(xforcact(i),istep,iinc,abqtime,node,
270 & ndirforc(i),coords,vold,mi,ntrans,trab,inotr,veold)
272 elseif((xforc(i).lt.1.9232931375d0).and.
273 & (xforc(i).gt.1.9232931373d0))
then 288 iselect(1)=ndirforc(i)+10
290 & coords,iselect,one,node,tieset,istartset,iendset,
291 & ialset,ntie,entity)
293 if(nmethod.eq.1)
then 294 xforcact(i)=xforcold(i)+
295 & (xforcact(i)-xforcold(i))*reltime
306 if(iamforci.gt.0)
then 307 xforcact(i)=xforc(i)*ampli(iamforci)
308 elseif(nmethod.eq.1)
then 309 xforcact(i)=xforcold(i)+
310 & (xforc(i)-xforcold(i))*reltime
321 if(sideload(i)(3:4).eq.
'NP')
then 324 call nident(ikboun,idof,nboun,id)
326 if(ikboun(id).eq.idof)
then 328 xloadact(1,i)=xbounact(ilboun(id))
333 if(ipresboun.eq.0)
then 335 iamloadi1=iamload(1,i)
336 iamloadi2=iamload(2,i)
341 if(iamloadi1.gt.0)
then 342 xloadact(1,i)=xload(1,i)*ampli(iamloadi1)
343 elseif(nmethod.eq.1)
then 344 xloadact(1,i)=xloadold(1,i)+
345 & (xload(1,i)-xloadold(1,i))*reltime
347 xloadact(1,i)=xload(1,i)
349 if(iamloadi2.gt.0)
then 350 xloadact(2,i)=xload(2,i)*ampli(iamloadi2)
354 xloadact(2,i)=xload(2,i)
365 if(iambodyi.gt.0)
then 366 xbodyact(1,i)=xbody(1,i)*ampli(iambodyi)
367 elseif(nmethod.eq.1)
then 368 xbodyact(1,i)=xbodyold(1,i)+
369 & (xbody(1,i)-xbodyold(1,i))*reltime
371 xbodyact(1,i)=xbody(1,i)
377 if(ithermal.eq.1)
then 379 if((t1(i).lt.1.2357111318d0).and.
380 & (t1(i).gt.1.2357111316d0))
then 383 abqtime(2)=ttime+time
386 coords(j)=co(j,i)+vold(j,i)
388 call utemp(t1act(i),msecpt,istep,iinc,abqtime,i,
389 & coords,vold,mi,iponoel,inoel,
390 & ipobody,xbodyact,ibody)
394 if((t1(i).lt.1.9232931375d0).and.
395 & (t1(i).gt.1.9232931373d0))
then 408 & coords,iselect,one,i,tieset,istartset,iendset,
409 & ialset,ntie,entity)
411 if(nmethod.eq.1)
then 412 t1act(i)=t1old(i)+(t1act(i)-t1old(i))*reltime
423 t1act(i)=t1(i)*ampli(iamt1i)
424 elseif(nmethod.eq.1)
then 425 t1act(i)=t1old(i)+(t1(i)-t1old(i))*reltime
443 fixed_temp=fixed_temp-
444 & coefmpc(index)*t1act(nodempc(1,index))
445 index=nodempc(3,index)
449 t1act(node)=fixed_temp/coefmpc(ist)
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
subroutine interpolsubmodel(integerglob, doubleglob, value, coords, iselect, nselect, nodeface, tieset, istartset, iendset, ialset, ntie, entity)
Definition: interpolsubmodel.f:22