CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
applympc_hfa.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine applympc_hfa (nface, ielfa, is, ie, ifabou, ipompc, hfa, coefmpc, nodempc, ipnei, neifa, labmpc, xbounact, nactdoh)
 

Function/Subroutine Documentation

◆ applympc_hfa()

subroutine applympc_hfa ( integer  nface,
integer, dimension(4,*)  ielfa,
integer  is,
integer  ie,
integer, dimension(*)  ifabou,
integer, dimension(*)  ipompc,
real*8, dimension(3,*)  hfa,
real*8, dimension(*)  coefmpc,
integer, dimension(3,*)  nodempc,
integer, dimension(*)  ipnei,
integer, dimension(*)  neifa,
character*20, dimension(*)  labmpc,
real*8, dimension(*)  xbounact,
integer, dimension(*)  nactdoh 
)
21 !
22 ! applies MPC's to the faces
23 !
24  implicit none
25 !
26  character*20 labmpc(*)
27 !
28  integer i,j,nface,ielfa(4,*),ipointer,is,ie,ifabou(*),mpc,
29  & ipompc(*),index,iel,iface,nodempc(3,*),ipnei(*),neifa(*),
30  & nactdoh(*),ielorig
31 !
32  real*8 coefmpc(*),denominator,hfa(3,*),sum,xbounact(*)
33 !
34  do i=1,nface
35  if(ielfa(2,i).ge.0) cycle
36  ipointer=-ielfa(2,i)
37  do j=is,ie
38  if(ifabou(ipointer+j).ge.0) cycle
39  mpc=-ifabou(ipointer+j)
40  index=ipompc(mpc)
41  denominator=coefmpc(index)
42  sum=0.d0
43  index=nodempc(3,index)
44  do
45  if(index.eq.0) exit
46  if(nodempc(1,index).lt.0) then
47 !
48 ! a negative number refers to a boundary
49 ! condition (fields nodeboun, ndirboun..)
50 ! resulting from a SPC in local coordinates
51 !
52  sum=sum+coefmpc(index)*xbounact(-nodempc(1,index))
53  else
54 !
55 ! face term
56 !
57  ielorig=int(nodempc(1,index)/10.d0)
58  iel=nactdoh(ielorig)
59  iface=nodempc(1,index)-10*ielorig
60  sum=sum+coefmpc(index)
61  & *hfa(nodempc(2,index),neifa(ipnei(iel)+iface))
62  endif
63  index=nodempc(3,index)
64  enddo
65  hfa(j,i)=-sum/denominator
66  enddo
67  enddo
68 !
69  return
Hosted by OpenAircraft.com, (Michigan UAV, LLC)