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),gradoel(3,*),gradofa(3,*),rf(3),area(*),
    37      &   volume(*),xle(*),xxi(3,*),c(3,3),gradnor,xxn(3,*),umfa(*),
    38      &   xxj(3,*),dd,xlet(*),coefmpc(*),cinf,physcon(*),dy(*)
    40       intent(in) nface,ielfa,xrlfa,vel,umfa,physcon,
    41      &  ifabou,xbounact,nef,neifa,rf,area,volume,
    42      &  xle,xxi,icyclic,xxn,ipnei,ifatie,xlet,xxj,
    43      &  coefmpc,nmpc,labmpc,ipompc,nodempc,ifaext,nfaext,nactdoh
    45       intent(inout) vfa,gradoel,gradofa
    49       cinf=5.5d0*physcon(5)/physcon(8)
    64             vfap(7,i)=xl1*vel(iel1,7)+xrlfa(2,i)*vel(iel2,7)
    65          elseif(ielfa(3,i).gt.0) 
then    76             if(ifabou(ipointer+5).gt.0) 
then    80                vfap(7,i)=dy(ifabou(ipointer+5))*umfa(i)/vfa(5,i)
    81             elseif(((ifabou(ipointer+1).gt.0).and.
    82      &              (ifabou(ipointer+2).gt.0).and.
    83      &              (ifabou(ipointer+3).gt.0)).or.
    84      &             (ifabou(ipointer+5).lt.0)) 
then    88                vfap(7,i)=cinf*umfa(i)
    93                vfap(7,i)=xl1*vel(iel1,7)+xrlfa(3,i)*vel(ielfa(3,i),7)
   110          call applympc(nface,ielfa,is,ie,ifabou,ipompc,vfap,coefmpc,
   111      &        nodempc,ipnei,neifa,labmpc,xbounact,nactdoh,
   130          do indexf=ipnei(i)+1,ipnei(i+1)
   133                gradoel(l,i)=gradoel(l,i)+
   134      &              vfap(7,ifa)*area(ifa)*xxn(l,indexf)
   141             gradoel(l,i)=gradoel(l,i)/volume(i)
   164             if((icyclic.eq.0).or.(ifatie(i).eq.0)) 
then   166                   gradofa(l,i)=xl1*gradoel(l,iel1)+
   167      &                 xl2*gradoel(l,iel2)
   169             elseif(ifatie(i).gt.0) 
then   171                   gradofa(l,i)=xl1*gradoel(l,iel1)+xl2*
   172      &                  (gradoel(1,iel2)*c(l,1)+
   173      &                   gradoel(2,iel2)*c(l,2)+
   174      &                   gradoel(3,iel2)*c(l,3))
   178                   gradofa(l,i)=xl1*gradoel(l,iel1)+xl2*
   179      &                  (gradoel(1,iel2)*c(1,l)+
   180      &                   gradoel(2,iel2)*c(2,l)+
   181      &                   gradoel(3,iel2)*c(3,l))
   184          elseif(ielfa(3,i).gt.0) 
then   194                gradofa(l,i)=xl1*gradoel(l,iel1)+
   195      &              xrlfa(3,i)*gradoel(l,abs(ielfa(3,i)))
   201             indexf=ipnei(iel1)+ielfa(4,i)
   202             gradnor=gradoel(1,iel1)*xxi(1,indexf)+
   203      &              gradoel(2,iel1)*xxi(2,indexf)+
   204      &              gradoel(3,iel1)*xxi(3,indexf)
   206                   gradofa(l,i)=gradoel(l,iel1)
   207      &                        -gradnor*xxi(l,indexf)
   233                vfa(7,i)=vfap(7,i)+gradofa(1,i)*rf(1)
   234      &                         +gradofa(2,i)*rf(2)
   235      &                         +gradofa(3,i)*rf(3)
   236             elseif(ielfa(3,i).gt.0) 
then   242                if(ifabou(ipointer+5).gt.0) 
then   247                elseif(((ifabou(ipointer+1).gt.0).and.
   248      &                 (ifabou(ipointer+2).gt.0).and.
   249      &                 (ifabou(ipointer+3).gt.0)).or.
   250      &                (ifabou(ipointer+5).lt.0)) 
then   259                   vfa(7,i)=vfap(7,i)+gradofa(1,i)*rf(1)+
   260      &                               gradofa(2,i)*rf(2)+
   267                indexf=ipnei(iel1)+ielfa(4,i)
   269      &                 +(gradofa(1,i)*xxi(1,indexf)+
   270      &                   gradofa(2,i)*xxi(2,indexf)+
   271      &                   gradofa(3,i)*xxi(3,indexf))*xle(indexf)
   282          call applympc(nface,ielfa,is,ie,ifabou,ipompc,vfa,coefmpc,
   283      &        nodempc,ipnei,neifa,labmpc,xbounact,nactdoh,
   302             do indexf=ipnei(i)+1,ipnei(i+1)
   305                   gradoel(l,i)=gradoel(l,i)+
   306      &                 vfa(7,ifa)*area(ifa)*xxn(l,indexf)
   313                gradoel(l,i)=gradoel(l,i)/volume(i)
   336                if((icyclic.eq.0).or.(ifatie(i).eq.0)) 
then   338                      gradofa(l,i)=xl1*gradoel(l,iel1)+
   339      &                    xl2*gradoel(l,iel2)
   341                elseif(ifatie(i).gt.0) 
then   343                      gradofa(l,i)=xl1*gradoel(l,iel1)+xl2*
   344      &                    (gradoel(1,iel2)*c(l,1)+
   345      &                    gradoel(2,iel2)*c(l,2)+
   346      &                    gradoel(3,iel2)*c(l,3))
   350                      gradofa(l,i)=xl1*gradoel(l,iel1)+xl2*
   351      &                    (gradoel(1,iel2)*c(1,l)+
   352      &                    gradoel(2,iel2)*c(2,l)+
   353      &                    gradoel(3,iel2)*c(3,l))
   356             elseif(ielfa(3,i).gt.0) 
then   361                   gradofa(l,i)=xl1*gradoel(l,iel1)+
   362      &                 xrlfa(3,i)*gradoel(l,abs(ielfa(3,i)))
   368                indexf=ipnei(iel1)+ielfa(4,i)
   369                gradnor=gradoel(1,iel1)*xxi(1,indexf)+
   370      &              gradoel(2,iel1)*xxi(2,indexf)+
   371      &              gradoel(3,iel1)*xxi(3,indexf)
   373                   gradofa(l,i)=gradoel(l,iel1)
   374      &                 -gradnor*xxi(l,indexf)
   394             indexf=ipnei(iel1)+ielfa(4,i)
   395             dd=(vel(iel2,7)-vel(iel1,7))/xlet(indexf)
   396      &        -gradofa(1,i)*xxj(1,indexf)
   397      &        -gradofa(2,i)*xxj(2,indexf)
   398      &        -gradofa(3,i)*xxj(3,indexf)
   400                gradofa(k,i)=gradofa(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