28       character*20 labmpc(*)
    30       integer nface,ielfa(4,*),ifabou(*),i,iel1,iel2,nef,ibou,
    31      &  neifa(*),icyclic,ifa,indexf,l,m,ipnei(*),ifatie(*),
    32      &  is,ie,nmpc,ipompc(*),nodempc(3,*),ifaext(*),nfaext,nactdoh(*)
    34       real*8 xrlfa(3,*),vel(nef,0:7),vfa(0:7,*),xbounact(*),xl1,xl2,
    35      &   vfap(0:7,nface),gradpel(3,*),gradpfa(3,*),rf(3),area(*),
    36      &   volume(*),xle(*),xxi(3,*),c(3,3),gradnor,xxn(3,*),coefmpc(*)
    38       intent(in) nface,ielfa,xrlfa,vel,
    39      &  ifabou,xbounact,nef,neifa,rf,area,volume,
    40      &  xle,xxi,icyclic,xxn,ipnei,ifatie,
    41      &  coefmpc,nmpc,labmpc,ipompc,nodempc,ifaext,nfaext,nactdoh
    43       intent(inout) vfa,gradpel,gradpfa
    57             vfap(4,i)=xl1*vel(iel1,4)+xrlfa(2,i)*vel(iel2,4)
    58          elseif(ielfa(3,i).ne.0) 
then    64                if(ifabou(-iel2+4).gt.0) 
then    73                vfap(4,i)=xbounact(ibou)
    78                vfap(4,i)=xl1*vel(iel1,4)
    79      &                 +xrlfa(3,i)*vel(abs(ielfa(3,i)),4)
    96          call applympc(nface,ielfa,is,ie,ifabou,ipompc,vfap,coefmpc,
    97      &        nodempc,ipnei,neifa,labmpc,xbounact,nactdoh,
   116          do indexf=ipnei(i)+1,ipnei(i+1)
   119                gradpel(l,i)=gradpel(l,i)+
   120      &              vfap(4,ifa)*area(ifa)*xxn(l,indexf)
   127             gradpel(l,i)=gradpel(l,i)/volume(i)
   150             if((icyclic.eq.0).or.(ifatie(i).eq.0)) 
then   152                   gradpfa(l,i)=xl1*gradpel(l,iel1)+
   153      &                 xl2*gradpel(l,iel2)
   155             elseif(ifatie(i).gt.0) 
then   157                   gradpfa(l,i)=xl1*gradpel(l,iel1)+xl2*
   158      &                  (gradpel(1,iel2)*c(l,1)+
   159      &                   gradpel(2,iel2)*c(l,2)+
   160      &                   gradpel(3,iel2)*c(l,3))
   164                   gradpfa(l,i)=xl1*gradpel(l,iel1)+xl2*
   165      &                  (gradpel(1,iel2)*c(1,l)+
   166      &                   gradpel(2,iel2)*c(2,l)+
   167      &                   gradpel(3,iel2)*c(3,l))
   170          elseif(ielfa(3,i).ne.0) 
then   175                gradpfa(l,i)=xl1*gradpel(l,iel1)+
   176      &              xrlfa(3,i)*gradpel(l,abs(ielfa(3,i)))
   182             indexf=ipnei(iel1)+ielfa(4,i)
   183             gradnor=gradpel(1,iel1)*xxi(1,indexf)+
   184      &              gradpel(2,iel1)*xxi(2,indexf)+
   185      &              gradpel(3,iel1)*xxi(3,indexf)
   187                   gradpfa(l,i)=gradpel(l,iel1)
   188      &                        -gradnor*xxi(l,indexf)
   214                vfa(4,i)=vfap(4,i)+gradpfa(1,i)*rf(1)
   215      &                         +gradpfa(2,i)*rf(2)
   216      &                         +gradpfa(3,i)*rf(3)
   217             elseif(ielfa(3,i).ne.0) 
then   223                   if(ifabou(-iel2+4).gt.0) 
then   237                   vfa(4,i)=vfap(4,i)+gradpfa(1,i)*rf(1)
   238      &                            +gradpfa(2,i)*rf(2)
   239      &                            +gradpfa(3,i)*rf(3)
   245                indexf=ipnei(iel1)+ielfa(4,i)
   247      &                 +(gradpfa(1,i)*xxi(1,indexf)+
   248      &                   gradpfa(2,i)*xxi(2,indexf)+
   249      &                   gradpfa(3,i)*xxi(3,indexf))*xle(indexf)
   260          call applympc(nface,ielfa,is,ie,ifabou,ipompc,vfa,coefmpc,
   261      &        nodempc,ipnei,neifa,labmpc,xbounact,nactdoh,
   280             do indexf=ipnei(i)+1,ipnei(i+1)
   283                   gradpel(l,i)=gradpel(l,i)+
   284      &                 vfa(4,ifa)*area(ifa)*xxn(l,indexf)
   291                gradpel(l,i)=gradpel(l,i)/volume(i)
   314                if((icyclic.eq.0).or.(ifatie(i).eq.0)) 
then   316                      gradpfa(l,i)=xl1*gradpel(l,iel1)+
   317      &                    xl2*gradpel(l,iel2)
   319                elseif(ifatie(i).gt.0) 
then   321                      gradpfa(l,i)=xl1*gradpel(l,iel1)+xl2*
   322      &                    (gradpel(1,iel2)*c(l,1)+
   323      &                     gradpel(2,iel2)*c(l,2)+
   324      &                     gradpel(3,iel2)*c(l,3))
   328                      gradpfa(l,i)=xl1*gradpel(l,iel1)+xl2*
   329      &                    (gradpel(1,iel2)*c(1,l)+
   330      &                     gradpel(2,iel2)*c(2,l)+
   331      &                     gradpel(3,iel2)*c(3,l))
   334             elseif(ielfa(3,i).ne.0) 
then   339                   gradpfa(l,i)=xl1*gradpel(l,iel1)+
   340      &                 xrlfa(3,i)*gradpel(l,abs(ielfa(3,i)))
   346                indexf=ipnei(iel1)+ielfa(4,i)
   347                gradnor=gradpel(1,iel1)*xxi(1,indexf)+
   348      &                 gradpel(2,iel1)*xxi(2,indexf)+
   349      &                 gradpel(3,iel1)*xxi(3,indexf)
   351                   gradpfa(l,i)=gradpel(l,iel1)
   352      &                 -gradnor*xxi(l,indexf)
 subroutine applympc(nface, ielfa, is, ie, ifabou, ipompc, vfa, coefmpc, nodempc, ipnei, neifa, labmpc, xbounact, nactdoh, ifaext, nfaext)
Definition: applympc.f:21