29 character*20 labmpc(*)
31 integer nodeboun(*),ndirboun(*),ipompc(*),imdnode(*),nmdnode,
32 & nodempc(3,*),nk,ithermal,i,j,index,mi(*),nactdof(0:mi(2),*),
33 & nboun,nmpc,ist,ndir,node,incrementalmpc,jmin,jmax,
34 & imdboun(*),nmdboun,imdmpc(*),nmdmpc,nmethod
36 real*8 v(0:mi(2),*),vold(0:mi(2),*),xboun(*),coefmpc(*),
37 & fixed_disp,b(*),veold(0:mi(2),*),bp(*),dtime,time,omega
42 omega=8.d0*datan(1.d0)*time
44 if(ithermal.le.1)
then 47 elseif(ithermal.eq.2)
then 63 if(nactdof(j,i).gt.0)
then 64 v(j,i)=b(nactdof(j,i))
76 if(ndirboun(i).gt.3) cycle
78 v(ndirboun(i),nodeboun(i))=fixed_disp
88 if((labmpc(i)(1:20).eq.
' ').or.
89 & (labmpc(i)(1:6).eq.
'CYCLIC').or.
90 & (labmpc(i)(1:9).eq.
'SUBCYCLIC'))
then 99 if(ithermal.lt.2) cycle
101 if(ithermal.eq.2) cycle
107 if(incrementalmpc.eq.0)
then 108 fixed_disp=fixed_disp-coefmpc(index)*
109 & v(nodempc(2,index),nodempc(1,index))
111 fixed_disp=fixed_disp-coefmpc(index)*
112 & (v(nodempc(2,index),nodempc(1,index))-
113 & vold(nodempc(2,index),nodempc(1,index)))
115 index=nodempc(3,index)
119 fixed_disp=fixed_disp/coefmpc(ist)
120 if(incrementalmpc.eq.1)
then 121 fixed_disp=fixed_disp+vold(ndir,node)
123 v(ndir,node)=fixed_disp
129 if(nmethod.eq.4)
then 132 if(nactdof(j,i).gt.0)
then 133 veold(j,i)=bp(nactdof(j,i))
143 if(ndirboun(i).gt.3) cycle
145 veold(ndirboun(i),nodeboun(i))=
146 & (fixed_disp-vold(ndirboun(i),nodeboun(i)))/dtime
155 if((labmpc(i)(1:20).eq.
' ').or.
156 & (labmpc(i)(1:6).eq.
'CYCLIC').or.
157 & (labmpc(i)(1:9).eq.
'SUBCYCLIC'))
then 166 if(ithermal.lt.2) cycle
168 if(ithermal.eq.2) cycle
174 fixed_disp=fixed_disp-coefmpc(index)*
175 & veold(nodempc(2,index),nodempc(1,index))
176 index=nodempc(3,index)
180 veold(ndir,node)=fixed_disp/coefmpc(ist)
185 elseif(nmethod.eq.5)
then 188 if(nactdof(j,i).gt.0)
then 189 veold(j,i)=bp(nactdof(j,i))*omega
199 if(ndirboun(i).gt.3) cycle
200 veold(ndirboun(i),nodeboun(i))=xboun(i)*omega
209 if((labmpc(i)(1:20).eq.
' ').or.
210 & (labmpc(i)(1:6).eq.
'CYCLIC').or.
211 & (labmpc(i)(1:9).eq.
'SUBCYCLIC'))
then 220 if(ithermal.lt.2) cycle
222 if(ithermal.eq.2) cycle
228 fixed_disp=fixed_disp-coefmpc(index)*
229 & veold(nodempc(2,index),nodempc(1,index))
230 index=nodempc(3,index)
234 veold(ndir,node)=fixed_disp/coefmpc(ist)
253 if(nactdof(j,imdnode(i)).gt.0)
then 254 v(j,imdnode(i))=b(nactdof(j,imdnode(i)))
267 if(ndirboun(i).gt.3) cycle
269 v(ndirboun(i),nodeboun(i))=fixed_disp
280 if((labmpc(i)(1:20).eq.
' ').or.
281 & (labmpc(i)(1:6).eq.
'CYCLIC').or.
282 & (labmpc(i)(1:9).eq.
'SUBCYCLIC'))
then 291 if(ithermal.lt.2) cycle
293 if(ithermal.eq.2) cycle
299 if(incrementalmpc.eq.0)
then 300 fixed_disp=fixed_disp-coefmpc(index)*
301 & v(nodempc(2,index),nodempc(1,index))
303 fixed_disp=fixed_disp-coefmpc(index)*
304 & (v(nodempc(2,index),nodempc(1,index))-
305 & vold(nodempc(2,index),nodempc(1,index)))
307 index=nodempc(3,index)
311 fixed_disp=fixed_disp/coefmpc(ist)
312 if(incrementalmpc.eq.1)
then 313 fixed_disp=fixed_disp+vold(ndir,node)
315 v(ndir,node)=fixed_disp
321 if(nmethod.eq.4)
then 324 if(nactdof(j,imdnode(i)).gt.0)
then 325 veold(j,imdnode(i))=bp(nactdof(j,imdnode(i)))
327 veold(j,imdnode(i))=0.d0
336 if(ndirboun(i).gt.3) cycle
338 veold(ndirboun(i),nodeboun(i))=
339 & (fixed_disp-vold(ndirboun(i),nodeboun(i)))/dtime
349 if((labmpc(i)(1:20).eq.
' ').or.
350 & (labmpc(i)(1:6).eq.
'CYCLIC').or.
351 & (labmpc(i)(1:9).eq.
'SUBCYCLIC'))
then 360 if(ithermal.lt.2) cycle
362 if(ithermal.eq.2) cycle
368 fixed_disp=fixed_disp-coefmpc(index)*
369 & veold(nodempc(2,index),nodempc(1,index))
370 index=nodempc(3,index)
374 veold(ndir,node)=fixed_disp/coefmpc(ist)
376 elseif(nmethod.eq.5)
then 379 if(nactdof(j,imdnode(i)).gt.0)
then 380 veold(j,imdnode(i))=bp(nactdof(j,imdnode(i)))*omega
382 veold(j,imdnode(i))=0.d0
391 if(ndirboun(i).gt.3) cycle
392 veold(ndirboun(i),nodeboun(i))=xboun(i)*omega
402 if((labmpc(i)(1:20).eq.
' ').or.
403 & (labmpc(i)(1:6).eq.
'CYCLIC').or.
404 & (labmpc(i)(1:9).eq.
'SUBCYCLIC'))
then 413 if(ithermal.lt.2) cycle
415 if(ithermal.eq.2) cycle
421 fixed_disp=fixed_disp-coefmpc(index)*
422 & veold(nodempc(2,index),nodempc(1,index))
423 index=nodempc(3,index)
427 veold(ndir,node)=fixed_disp/coefmpc(ist)
433 vold(j,imdnode(i))=v(j,imdnode(i))
#define min(a, b)
Definition: cascade.c:31