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

Go to the source code of this file.

Functions/Subroutines

subroutine networkextrapolate (v, ipkon, inum, kon, lakon, ne, mi)
 

Function/Subroutine Documentation

◆ networkextrapolate()

subroutine networkextrapolate ( real*8, dimension(0:mi(2),*)  v,
integer, dimension(*)  ipkon,
integer, dimension(*)  inum,
integer, dimension(*)  kon,
character*8, dimension(*)  lakon,
integer  ne,
integer, dimension(*)  mi 
)
21 !
22 ! extrapolates nodal values in fluid elements
23 !
24  implicit none
25 !
26  character*8 lakon(*),lakonl
27 !
28  integer ipkon(*),inum(*),kon(*),ne,indexe,i,node1,node2,node3,
29  & mi(*)
30 !
31  real*8 v(0:mi(2),*)
32 !
33 ! determining all inflowing mass flow in the end nodes and
34 ! assigning it to the end nodes
35 !
36 ! the corresponding action for the .dat file is done in
37 ! flowoutput.f; this latter result is always positive.
38 !
39  do i=1,ne
40 !
41  if(ipkon(i).lt.0) cycle
42  lakonl=lakon(i)
43  if(lakonl(1:1).ne.'D') cycle
44  if(lakonl(1:7).eq.'DCOUP3D') cycle
45 !
46  indexe=ipkon(i)
47  if(kon(indexe+1).ne.0) then
48  node1=kon(indexe+1)
49  v(1,node1)=0.d0
50  endif
51  if(kon(indexe+3).ne.0) then
52  node3=kon(indexe+3)
53  v(1,node3)=0.d0
54  endif
55  enddo
56 !
57  do i=1,ne
58 !
59  if(ipkon(i).lt.0) cycle
60  lakonl=lakon(i)
61  if(lakonl(1:1).ne.'D') cycle
62  if(lakonl(1:7).eq.'DCOUP3D') cycle
63 !
64  indexe=ipkon(i)
65  node2=kon(indexe+2)
66  if(kon(indexe+1).ne.0) then
67  node1=kon(indexe+1)
68  inum(node1)=-1
69 c if(v(1,node2).gt.0.d0) v(1,node1)=v(1,node1)+v(1,node2)
70  if(v(1,node2).lt.0.d0) v(1,node1)=v(1,node1)-v(1,node2)
71  endif
72  inum(node2)=inum(node2)-1
73  if(kon(indexe+3).ne.0) then
74  node3=kon(indexe+3)
75  inum(node3)=-1
76 c if(v(1,node2).lt.0.d0) v(1,node3)=v(1,node3)+v(1,node2)
77  if(v(1,node2).gt.0.d0) v(1,node3)=v(1,node3)+v(1,node2)
78  endif
79  enddo
80 !
81 ! interpolating the total temperature, total pressure
82 ! and static temperature;
83 !
84  do i=1,ne
85 !
86  if(ipkon(i).lt.0) cycle
87  lakonl=lakon(i)
88  if(lakonl(1:1).ne.'D') cycle
89  if(lakonl(1:7).eq.'DCOUP3D') cycle
90 !
91  indexe=ipkon(i)
92 !
93 ! end node
94 !
95  node1=kon(indexe+1)
96 !
97 ! other end node
98 !
99  node3=kon(indexe+3)
100 !
101 ! middle node and zero nodes (network entrances/exits)
102 ! interpolating the total temperature, total pressure
103 ! and static temperature
104 !
105  node2=kon(indexe+2)
106  if(node1.eq.0) then
107  v(0,node2)=v(0,node3)
108  v(2,node2)=v(2,node3)
109  v(3,node2)=v(3,node3)
110  elseif(node3.eq.0) then
111  v(0,node2)=v(0,node1)
112  v(2,node2)=v(2,node1)
113  v(3,node2)=v(3,node1)
114  else
115  v(0,node2)=(v(0,node1)+v(0,node3))/2.d0
116  v(2,node2)=(v(2,node1)+v(2,node3))/2.d0
117  v(3,node2)=(v(3,node1)+v(3,node3))/2.d0
118  endif
119  enddo
120 !
121  return
Hosted by OpenAircraft.com, (Michigan UAV, LLC)