1!
2!     CalculiX - A 3-dimensional finite element program
3!     Copyright (C) 1998-2021 Guido Dhondt
4!
5!     This program is free software; you can redistribute it and/or
6!     modify it under the terms of the GNU General Public License as
7!     published by the Free Software Foundation(version 2);
8!
9!
10!     This program is distributed in the hope that it will be useful,
11!     but WITHOUT ANY WARRANTY; without even the implied warranty of
12!     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13!     GNU General Public License for more details.
14!
15!     You should have received a copy of the GNU General Public License
16!     along with this program; if not, write to the Free Software
17!     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18!
19      subroutine calculatehmid(nktet_,h,ipoed,iedg,iedgmid)
20!
21!     calculating the desired size of h in all midnodes
22!
23      implicit none
24!
25      integer nktet_,ipoed(*),iedg(3,*),iedgmid(*),node1,node2,
26     &     nodem,i,index
27!
28      real*8 h(*)
29!
30!     the desired edge length at the midnodes is the mean of the
31!     desired length at its neighbors
32!
33      do i=1,nktet_
34        index=ipoed(i)
35!
36        do
37          if(index.eq.0) exit
38!
39          node1=iedg(1,index)
40          node2=iedg(2,index)
41          nodem=iedgmid(index)
42!
43          h(nodem)=(h(node1)+h(node2))/2.d0
44!
45          index=iedg(3,index)
46        enddo
47      enddo
48!
49      return
50      end
51