29       character*20 labmpc(*)
    31       integer nface,ielfa(4,*),ifabou(*),i,iel1,iel2,nef,
    32      &  neifa(*),icyclic,ifa,indexf,k,l,m,ipnei(*),ifatie(*),ipointer,
    33      &  is,ie,nmpc,ipompc(*),nodempc(3,*),ifaext(*),nfaext,nactdoh(*)
    35       real*8 xrlfa(3,*),vel(nef,0:7),vfa(0:7,*),xbounact(*),xl1,xl2,
    36      &   vfap(0:7,nface),gradkel(3,*),gradkfa(3,*),rf(3),area(*),
    37      &   volume(*),xle(*),xxi(3,*),c(3,3),gradnor,xxn(3,*),umfa(*),
    38      &   xxj(3,*),dd,xlet(*),coefmpc(*),constant,
    41       intent(in) nface,ielfa,xrlfa,umfa,physcon,
    42      &  ifabou,xbounact,nef,neifa,rf,area,volume,
    43      &  xle,xxi,icyclic,xxn,ipnei,ifatie,xlet,xxj,
    44      &  coefmpc,nmpc,labmpc,ipompc,nodempc,ifaext,nfaext,nactdoh
    46       intent(inout) vfa,gradkel,gradkfa,vel
    50       constant=1.7393d-3*physcon(5)/(physcon(7)*physcon(8))
    65             vfap(6,i)=xl1*vel(iel1,6)+xrlfa(2,i)*vel(iel2,6)
    66          elseif(ielfa(3,i).gt.0) 
then    77             if(ifabou(ipointer+5).gt.0) 
then    82             elseif(((ifabou(ipointer+1).gt.0).and.
    83      &              (ifabou(ipointer+2).gt.0).and.
    84      &              (ifabou(ipointer+3).gt.0)).or.
    85      &             (ifabou(ipointer+5).lt.0)) 
then    92                vfap(6,i)=constant*umfa(i)
    97                vfap(6,i)=xl1*vel(iel1,6)+xrlfa(3,i)*vel(ielfa(3,i),6)
   103             vfap(6,i)=vel(iel1,6)
   114          call applympc(nface,ielfa,is,ie,ifabou,ipompc,vfap,coefmpc,
   115      &        nodempc,ipnei,neifa,labmpc,xbounact,nactdoh,
   134          do indexf=ipnei(i)+1,ipnei(i+1)
   137                gradkel(l,i)=gradkel(l,i)+
   138      &              vfap(6,ifa)*area(ifa)*xxn(l,indexf)
   145             gradkel(l,i)=gradkel(l,i)/volume(i)
   168             if((icyclic.eq.0).or.(ifatie(i).eq.0)) 
then   170                   gradkfa(l,i)=xl1*gradkel(l,iel1)+
   171      &                 xl2*gradkel(l,iel2)
   173             elseif(ifatie(i).gt.0) 
then   175                   gradkfa(l,i)=xl1*gradkel(l,iel1)+xl2*
   176      &                  (gradkel(1,iel2)*c(l,1)+
   177      &                   gradkel(2,iel2)*c(l,2)+
   178      &                   gradkel(3,iel2)*c(l,3))
   182                   gradkfa(l,i)=xl1*gradkel(l,iel1)+xl2*
   183      &                  (gradkel(1,iel2)*c(1,l)+
   184      &                   gradkel(2,iel2)*c(2,l)+
   185      &                   gradkel(3,iel2)*c(3,l))
   188          elseif(ielfa(3,i).gt.0) 
then   198                gradkfa(l,i)=xl1*gradkel(l,iel1)+
   199      &              xrlfa(3,i)*gradkel(l,abs(ielfa(3,i)))
   205             indexf=ipnei(iel1)+ielfa(4,i)
   206             gradnor=gradkel(1,iel1)*xxi(1,indexf)+
   207      &              gradkel(2,iel1)*xxi(2,indexf)+
   208      &              gradkel(3,iel1)*xxi(3,indexf)
   210                   gradkfa(l,i)=gradkel(l,iel1)
   211      &                        -gradnor*xxi(l,indexf)
   237                vfa(6,i)=vfap(6,i)+gradkfa(1,i)*rf(1)
   238      &                         +gradkfa(2,i)*rf(2)
   239      &                         +gradkfa(3,i)*rf(3)
   240             elseif(ielfa(3,i).gt.0) 
then   246                if(ifabou(ipointer+5).gt.0) 
then   251                elseif(((ifabou(ipointer+1).gt.0).and.
   252      &                 (ifabou(ipointer+2).gt.0).and.
   253      &                 (ifabou(ipointer+3).gt.0)).or.
   254      &                (ifabou(ipointer+5).lt.0)) 
then   263                   vfa(6,i)=vfap(6,i)+gradkfa(1,i)*rf(1)+
   264      &                               gradkfa(2,i)*rf(2)+
   271                indexf=ipnei(iel1)+ielfa(4,i)
   273      &                 +(gradkfa(1,i)*xxi(1,indexf)+
   274      &                   gradkfa(2,i)*xxi(2,indexf)+
   275      &                   gradkfa(3,i)*xxi(3,indexf))*xle(indexf)
   286          call applympc(nface,ielfa,is,ie,ifabou,ipompc,vfa,coefmpc,
   287      &        nodempc,ipnei,neifa,labmpc,xbounact,nactdoh,
   306             do indexf=ipnei(i)+1,ipnei(i+1)
   309                   gradkel(l,i)=gradkel(l,i)+
   310      &                 vfa(6,ifa)*area(ifa)*xxn(l,indexf)
   317                gradkel(l,i)=gradkel(l,i)/volume(i)
   340                if((icyclic.eq.0).or.(ifatie(i).eq.0)) 
then   342                      gradkfa(l,i)=xl1*gradkel(l,iel1)+
   343      &                    xl2*gradkel(l,iel2)
   345                elseif(ifatie(i).gt.0) 
then   347                      gradkfa(l,i)=xl1*gradkel(l,iel1)+xl2*
   348      &                    (gradkel(1,iel2)*c(l,1)+
   349      &                    gradkel(2,iel2)*c(l,2)+
   350      &                    gradkel(3,iel2)*c(l,3))
   354                      gradkfa(l,i)=xl1*gradkel(l,iel1)+xl2*
   355      &                    (gradkel(1,iel2)*c(1,l)+
   356      &                    gradkel(2,iel2)*c(2,l)+
   357      &                    gradkel(3,iel2)*c(3,l))
   360             elseif(ielfa(3,i).gt.0) 
then   365                   gradkfa(l,i)=xl1*gradkel(l,iel1)+
   366      &                 xrlfa(3,i)*gradkel(l,abs(ielfa(3,i)))
   372                indexf=ipnei(iel1)+ielfa(4,i)
   373                gradnor=gradkel(1,iel1)*xxi(1,indexf)+
   374      &              gradkel(2,iel1)*xxi(2,indexf)+
   375      &              gradkel(3,iel1)*xxi(3,indexf)
   377                   gradkfa(l,i)=gradkel(l,iel1)
   378      &                 -gradnor*xxi(l,indexf)
   398             indexf=ipnei(iel1)+ielfa(4,i)
   399             dd=(vel(iel2,6)-vel(iel1,6))/xlet(indexf)
   400      &        -gradkfa(1,i)*xxj(1,indexf)
   401      &        -gradkfa(2,i)*xxj(2,indexf)
   402      &        -gradkfa(3,i)*xxj(3,indexf)
   404                gradkfa(k,i)=gradkfa(k,i)+dd*xxj(k,indexf)
 subroutine applympc(nface, ielfa, is, ie, ifabou, ipompc, vfa, coefmpc, nodempc, ipnei, neifa, labmpc, xbounact, nactdoh, ifaext, nfaext)
Definition: applympc.f:21