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