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

Go to the source code of this file.

Functions/Subroutines

subroutine addimdnodedof (node, k, ikmpc, ilmpc, ipompc, nodempc, nmpc, imdnode, nmdnode, imddof, nmddof, nactdof, mi, imdmpc, nmdmpc, imdboun, nmdboun, ikboun, nboun, ilboun)
 

Function/Subroutine Documentation

◆ addimdnodedof()

subroutine addimdnodedof ( integer  node,
integer  k,
integer, dimension(*)  ikmpc,
integer, dimension(*)  ilmpc,
integer, dimension(*)  ipompc,
integer, dimension(3,*)  nodempc,
integer  nmpc,
integer, dimension(*)  imdnode,
integer  nmdnode,
integer, dimension(*)  imddof,
integer  nmddof,
integer, dimension(0:mi(2),*)  nactdof,
integer, dimension(*)  mi,
integer, dimension(*)  imdmpc,
integer  nmdmpc,
integer, dimension(*)  imdboun,
integer  nmdboun,
integer, dimension(*)  ikboun,
integer  nboun,
integer, dimension(*)  ilboun 
)
22 !
23 ! node was kept by the user in a modal dynamics calculation;
24 ! the present routine checks DOF k of node; if this DOF belongs
25 ! to a MPC all independent nodes and DOF's of the MPC have to be kept
26 !
27  implicit none
28 !
29  integer node,k,idof,ikmpc(*),ilmpc(*),ipompc(*),nodempc(3,*),
30  & nmpc,imdnode(*),nmdnode,imddof(*),nmddof,id,ist,index,jdof,
31  & mi(*),nactdof(0:mi(2),*),imdmpc(*),nmdmpc,imdboun(*),nmdboun,
32  & ikboun(*),nboun,ilboun(*)
33 !
34  idof=nactdof(k,node)
35 c write(*,*) 'addimdnodedof ',node,k,idof
36  if(idof.le.0) then
37  idof=(node-1)*8+k
38 !
39 ! checking for mpc's
40 !
41  call nident(ikmpc,idof,nmpc,id)
42  if(id.gt.0) then
43  if(ikmpc(id).eq.idof) then
44  call addimd(imdmpc,nmdmpc,ilmpc(id))
45  id=ilmpc(id)
46  ist=ipompc(id)
47  index=nodempc(3,ist)
48  if(index.ne.0) then
49  do
50  call addimd(imdnode,nmdnode,nodempc(1,index))
51  jdof=nactdof(nodempc(2,index),nodempc(1,index))
52  if(jdof.gt.0) call addimd(imddof,nmddof,jdof)
53  index=nodempc(3,index)
54  if(index.eq.0) exit
55  enddo
56  endif
57  endif
58  endif
59 !
60 ! checking for spc's
61 !
62  call nident(ikboun,idof,nboun,id)
63  if(id.gt.0) then
64  if(ikboun(id).eq.idof) then
65  call addimd(imdboun,nmdboun,ilboun(id))
66  endif
67  endif
68  else
69  call addimd(imddof,nmddof,idof)
70  endif
71 !
72  return
subroutine addimd(imd, nmd, node)
Definition: addimd.f:20
subroutine nident(x, px, n, id)
Definition: nident.f:26
Hosted by OpenAircraft.com, (Michigan UAV, LLC)