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 & 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(*)
71 if(namta(3,i).lt.0)
then 76 if(abs(namta(3,i)).ne.i)
then 77 reftime=reftime-amta(1,namta(1,i))
78 istart=namta(1,abs(namta(3,i)))
79 iend=namta(2,abs(namta(3,i)))
81 call uamplitude(reftime,amname(namta(3,i)),ampli(i))
92 call identamta(amta,reftime,istart,iend,id)
94 ampli(i)=amta(2,istart)
95 elseif(id.eq.iend)
then 98 ampli(i)=amta(2,id)+(amta(2,id+1)-amta(2,id))
99 & *(reftime-amta(1,id))/(amta(1,id+1)-amta(1,id))
106 if((xboun(i).lt.1.2357111318d0).and.
107 & (xboun(i).gt.1.2357111316d0))
then 116 call nident(itg,node,ntg,id)
118 if(itg(id).eq.node)
then 124 abqtime(2)=ttime+time
140 if(ndirboun(i).eq.0)
then 141 call utemp(xbounact(i),msecpt,istep,iinc,abqtime,node,
142 & coords,vold,mi,iponoel,inoel,
143 & ipobody,xbodyact,ibody)
145 call uboun(xbounact(i),istep,iinc,abqtime,node,
146 & ndirboun(i),coords,vold,mi,iponoel,inoel,
147 & ipobody,xbodyact,ibody)
151 if((xboun(i).lt.1.9232931375d0).and.
152 & (xboun(i).gt.1.9232931373d0))
then 161 call nident(itg,node,ntg,id)
163 if(itg(id).eq.node)
then 177 iselect(1)=ndirboun(i)+1
179 & coords,iselect,one,node,tieset,istartset,iendset,
180 & ialset,ntie,entity)
182 if(nmethod.eq.1)
then 183 xbounact(i)=xbounold(i)+
184 & (xbounact(i)-xbounold(i))*reltime
195 if(iambouni.gt.0)
then 196 xbounact(i)=xboun(i)*ampli(iambouni)
197 elseif(nmethod.eq.1)
then 198 xbounact(i)=xbounold(i)+
199 & (xboun(i)-xbounold(i))*reltime
208 if(ndirforc(i).eq.0)
then 209 if((xforc(i).lt.1.2357111318d0).and.
210 & (xforc(i).gt.1.2357111316d0))
then 219 call nident(itg,node,ntg,id)
221 if(itg(id).eq.node)
then 227 abqtime(2)=ttime+time
243 call cflux(xforcact(i),msecpt,istep,iinc,abqtime,node,
248 if((xforc(i).lt.1.2357111318d0).and.
249 & (xforc(i).gt.1.2357111316d0))
then 256 abqtime(2)=ttime+time
263 call cload(xforcact(i),istep,iinc,abqtime,node,
264 & ndirforc(i),coords,vold,mi,ntrans,trab,inotr,veold)
266 elseif((xforc(i).lt.1.9232931375d0).and.
267 & (xforc(i).gt.1.9232931373d0))
then 282 iselect(1)=ndirforc(i)+10
284 & coords,iselect,one,node,tieset,istartset,iendset,
285 & ialset,ntie,entity)
287 if(nmethod.eq.1)
then 288 xforcact(i)=xforcold(i)+
289 & (xforcact(i)-xforcold(i))*reltime
300 if(iamforci.gt.0)
then 301 xforcact(i)=xforc(i)*ampli(iamforci)
302 elseif(nmethod.eq.1)
then 303 xforcact(i)=xforcold(i)+
304 & (xforc(i)-xforcold(i))*reltime
315 if(sideload(i)(3:4).eq.
'NP')
then 318 call nident(ikboun,idof,nboun,id)
320 if(ikboun(id).eq.idof)
then 322 xloadact(1,i)=xbounact(ilboun(id))
327 if(ipresboun.eq.0)
then 329 iamloadi1=iamload(1,i)
330 iamloadi2=iamload(2,i)
335 if(iamloadi1.gt.0)
then 336 xloadact(1,i)=xload(1,i)*ampli(iamloadi1)
337 elseif(nmethod.eq.1)
then 338 xloadact(1,i)=xloadold(1,i)+
339 & (xload(1,i)-xloadold(1,i))*reltime
341 xloadact(1,i)=xload(1,i)
343 if(iamloadi2.gt.0)
then 344 xloadact(2,i)=xload(2,i)*ampli(iamloadi2)
348 xloadact(2,i)=xload(2,i)
359 if(iambodyi.gt.0)
then 360 xbodyact(1,i)=xbody(1,i)*ampli(iambodyi)
361 elseif(nmethod.eq.1)
then 362 xbodyact(1,i)=xbodyold(1,i)+
363 & (xbody(1,i)-xbodyold(1,i))*reltime
365 xbodyact(1,i)=xbody(1,i)
371 if(ithermal.eq.1)
then 373 if((t1(i).lt.1.2357111318d0).and.
374 & (t1(i).gt.1.2357111316d0))
then 377 abqtime(2)=ttime+time
383 call utemp(t1act(i),msecpt,istep,iinc,abqtime,i,
384 & coords,vold,mi,iponoel,inoel,
385 & ipobody,xbodyact,ibody)
389 if((t1(i).lt.1.9232931375d0).and.
390 & (t1(i).gt.1.9232931373d0))
then 403 & coords,iselect,one,i,tieset,istartset,iendset,
404 & ialset,ntie,entity)
406 if(nmethod.eq.1)
then 407 t1act(i)=t1old(i)+(t1act(i)-t1old(i))*reltime
418 t1act(i)=t1(i)*ampli(iamt1i)
419 elseif(nmethod.eq.1)
then 420 t1act(i)=t1old(i)+(t1(i)-t1old(i))*reltime
438 fixed_temp=fixed_temp-
439 & coefmpc(index)*t1act(nodempc(1,index))
440 index=nodempc(3,index)
444 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