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

Go to the source code of this file.

Functions/Subroutines

subroutine flowoutput (itg, ieg, ntg, nteq, bc, lakon, ntmat_, v, shcon, nshcon, ipkon, kon, co, nflow, dtime, ttime, time, ielmat, prop, ielprop, nactdog, nacteq, iin, physcon, camt, camf, camp, rhcon, nrhcon, vold, jobnamef, set, istartset, iendset, ialset, nset, mi, iaxial, istep, iit)
 

Function/Subroutine Documentation

◆ flowoutput()

subroutine flowoutput ( integer, dimension(*)  itg,
integer, dimension(*)  ieg,
integer  ntg,
integer  nteq,
real*8, dimension(*)  bc,
character*8, dimension(*)  lakon,
integer  ntmat_,
real*8, dimension(0:mi(2),*)  v,
real*8, dimension(0:3,ntmat_,*)  shcon,
integer, dimension(*)  nshcon,
integer, dimension(*)  ipkon,
integer, dimension(*)  kon,
real*8, dimension(3,*)  co,
integer  nflow,
real*8  dtime,
real*8  ttime,
real*8  time,
integer, dimension(mi(3),*)  ielmat,
real*8, dimension(*)  prop,
integer, dimension(*)  ielprop,
integer, dimension(0:3,*)  nactdog,
integer, dimension(0:3,*)  nacteq,
integer  iin,
real*8, dimension(*)  physcon,
real*8, dimension(*)  camt,
real*8, dimension(*)  camf,
real*8, dimension(*)  camp,
real*8, dimension(0:1,ntmat_,*)  rhcon,
integer, dimension(*)  nrhcon,
real*8, dimension(0:mi(2),*)  vold,
character*132, dimension(*)  jobnamef,
character*81, dimension(*)  set,
integer, dimension(*)  istartset,
integer, dimension(*)  iendset,
integer, dimension(*)  ialset,
integer  nset,
integer, dimension(*)  mi,
integer  iaxial,
integer  istep,
integer  iit 
)
28 !
29  implicit none
30 !
31  logical identity
32 !
33  character*8 lakon(*)
34  character*81 set(*)
35  character*132 jobnamef(*),fnnet
36 !
37  integer mi(*),itg(*),ieg(*),ntg,nflow,ielmat(mi(3),*),i,
38  & nrhcon(*),node,iaxial,ider,idirf(8),ieq,imat,kflag,
39  & ntmat_,nteq,nshcon(*),nelem,index,ipkon(*),kon(*),iin,
40  & nactdog(0:3,*),nacteq(0:3,*),ielprop(*),node1,nodem,node2,
41  & istartset(*),iendset(*),ialset(*),nset,nodef(8),numf,
42  & istep,iit
43 !
44  real*8 physcon(*),v(0:mi(2),*),shcon(0:3,ntmat_,*),co(3,*),
45  & prop(*),dtime,ttime,time,xflow,camt(*),camf(*),camp(*),
46  & rhcon(0:1,ntmat_,*),vold(0:mi(2),*),uamt,uamf,uamp,eta,
47  & bc(*),cp,dvi,df(8),gastemp,f,g(3),r,rho,ts1,ts2,tg1,tg2
48 !
49  do i=1,132
50  if(jobnamef(1)(i:i).eq.' ') exit
51  enddo
52  i=i-1
53  fnnet=jobnamef(1)(1:i)//'.net'
54  open(1,file=fnnet,status='unknown')
55 !
56  kflag=3
57 !
58  do i=1,nflow
59  nelem=ieg(i)
60 !
61 ! output for gas networks
62 !
63  if((lakon(nelem)(2:5).ne.'LIPI').and.
64  & (lakon(nelem)(2:5).ne.'LICH')) then
65 !
66  index=ipkon(nelem)
67  node1=kon(index+1)
68  nodem=kon(index+2)
69  node2=kon(index+3)
70 !
71  xflow=v(1,nodem)
72 !
73  if(lakon(nelem)(2:3).ne.'LP') then
74 !
75 ! incompressible
76 !
77  if(node1.eq.0) then
78 c tg1=v(0,node2)
79 c tg2=tg1
80  ts1=v(3,node2)
81  ts2=ts1
82  elseif(node2.eq.0) then
83 c tg1=v(0,node1)
84 c tg2=tg1
85  ts1=v(3,node1)
86  ts2=ts1
87  else
88 c tg1=v(0,node1)
89 c tg2=v(0,node2)
90  ts1=v(3,node1)
91  ts2=v(3,node2)
92  endif
93  gastemp=(ts1+ts2)/2.d0
94  else
95 !
96 ! compressible
97 !
98  if(xflow.gt.0) then
99 c tg1=v(0,node1)
100 c ts1=v(3,node1)
101 c tg2=v(0,node2)
102 c ts2=v(3,node2)
103 c gastemp=ts1
104  gastemp=v(3,node1)
105  else
106 c tg2=v(0,node1)
107 c ts2=v(3,node1)
108 c tg1=v(0,node2)
109 c ts1=v(3,node2)
110 c gastemp=ts2
111  gastemp=v(3,node2)
112  endif
113  endif
114 !
115  imat=ielmat(1,nelem)
116 !
117  call materialdata_tg(imat,ntmat_,gastemp,shcon,nshcon,cp,r,
118  & dvi,rhcon,nrhcon,rho)
119 !
120  if(nacteq(2,nodem).ne.0) then
121  ieq=nacteq(2,nodem)
122 c xflow=v(1,nodem)
123 !
124 ! dummy set number
125 !
126  numf=1
127 !
128  call flux(node1,node2,nodem,nelem,lakon,kon,ipkon,
129  & nactdog,identity,
130  & ielprop,prop,kflag,v,xflow,f,nodef,idirf,df,
131  & cp,r,rho,physcon,g,co,dvi,numf,vold,set,shcon,
132  & nshcon,rhcon,nrhcon,ntmat_,mi,ider,ttime,time,
133  & iaxial)
134  endif
135  endif
136 !
137  if(lakon(ieg(i))(2:5).eq.'LICH') then
138  if((lakon(ieg(i))(6:7).eq.'SG').or.
139  & (lakon(ieg(i))(6:7).eq.'WE').or.
140  & (lakon(ieg(i))(6:7).eq.'DS')) then
141  index=ipkon(ieg(i))
142  node=kon(index+2)
143  if(nactdog(3,node).eq.0) cycle
144  index=ielprop(ieg(i))
145  if(lakon(ieg(i))(6:7).eq.'SG') then
146  eta=prop(index+4)
147  nelem=int(prop(index+7))
148  elseif(lakon(ieg(i))(6:7).eq.'WE') then
149  eta=prop(index+4)
150  nelem=int(prop(index+7))
151  elseif(lakon(ieg(i))(6:7).eq.'DS') then
152  eta=prop(index+7)
153  nelem=int(prop(index+9))
154  endif
155  if(nelem.ne.0) then
156  write(*,*) ' *INFO in flowoutput: hydraulic jump'
157  write(*,*) ' in element ',nelem,'.'
158  write(*,*) ' relative location:',eta
159  write(*,*)
160  endif
161  endif
162  endif
163  enddo
164 !
165  close(1)
166 !
167  return
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
subroutine flux(node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, kflag, v, xflow, f, nodef, idirf, df, cp, R, rho, physcon, g, co, dvi, numf, vold, set, shcon, nshcon, rhcon, nrhcon, ntmat_, mi, ider, ttime, time, iaxial)
Definition: flux.f:24
subroutine materialdata_tg(imat, ntmat_, t1l, shcon, nshcon, sph, r, dvi, rhcon, nrhcon, rho)
Definition: materialdata_tg.f:20
Hosted by OpenAircraft.com, (Michigan UAV, LLC)