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

Go to the source code of this file.

Functions/Subroutines

subroutine moehring (node1, node2, nodem, nelem, lakon, kon, ipkon, nactdog, identity, ielprop, prop, iflag, v, xflow, f, nodef, idirf, df, cp, R, dvi, numf, set, mi, ttime, time, iaxial)
 
real *8 function f_k (x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
 
real *8 function f_p (x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
 
real *8 function f_t (x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
 
real *8 function f_m (x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
 
real *8 function f_cm (x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
 

Function/Subroutine Documentation

◆ f_cm()

real*8 function f_cm ( real*8  x,
real*8  phi,
real*8  lambda1,
real*8  zk0,
real*8  Pup,
real*8  Tup,
real*8  rurd,
real*8  xflow,
real*8  kup 
)
582 !
583  implicit none
584  integer neq,idid,ipar,j,iwork(100),lrw,liw
585  real*8 f_cm,x,rpar(8),rtol,atol,y(1),info(15),
586  & rurd,zk0,lambda1,kup,xflow,pup,tup,phi,t,rwork(160)
587 !
588  external dkdx
589 !
590 ! storing the parameters
591  rpar(1)=phi
592  rpar(2)=lambda1
593  rpar(3)=zk0
594  rpar(4)=pup
595  rpar(5)=tup
596  rpar(6)=rurd
597  rpar(7)=xflow
598  rpar(8)=kup
599 !
600 ! relative error
601  rtol=1.d-7
602 ! absolute error
603  atol=1.d-7
604 ! initial value
605 !
606  if(xflow.lt.0d0) then
607  t=rurd
608  else
609  t=1.d0
610  endif
611 !
612  neq=1
613 !
614 ! initialisation info field
615  do j=1,15
616  info(j)=0
617  enddo
618 ! initial condition f(0)
619 ! core swirl ratio at Rup
620 !
621  y(1)=kup
622 !
623  lrw=160
624  liw=60
625 !
626 ! solving the differential equation Möhring 3.35
627 ! dK/dX=f(K(X))
628 !
629  call ddeabm(dkdx,neq,t,y,x,info,rtol,atol,idid,
630  & rwork,lrw,iwork,liw,rpar,ipar)
631 !
632  f_cm=dabs(1-y(1))/(1-y(1))*dabs(1-y(1))**(1.75d0)
633  & *x**(3.6d0)
634 !
635  return
subroutine dkdx(x, u, uprime, rpar, ipar)
Definition: dKdX.f:24
subroutine ddeabm(DF, NEQ, T, Y, TOUT, INFO, RTOL, ATOL, IDID, RWORK, LRW, IWORK, LIW, RPAR, IPAR)
Definition: ddeabm.f:7
real *8 function f_cm(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:582

◆ f_k()

real*8 function f_k ( real*8  x,
real*8  phi,
real*8  lambda1,
real*8  zk0,
real*8  Pup,
real*8  Tup,
real*8  rurd,
real*8  xflow,
real*8  kup 
)
363 !
364  implicit none
365  integer neq,idid,ipar,iwork(100),lrw,liw,j
366  real*8 f_k,x,rpar(8),rtol,atol,y(1),info(15),
367  & rurd,zk0,lambda1,kup,xflow,pup,tup,phi,t,rwork(160)
368 !
369  external dkdx
370 !
371 ! storing the parameters
372  rpar(1)=phi
373  rpar(3)=zk0
374 !
375 ! relative error
376  rtol=1.d-7
377 ! absolute error
378  atol=1.d-7
379 !
380 ! initial value
381  if(xflow.lt.0d0) then
382  t=rurd
383  else
384  t=1.d0
385  endif
386 
387  neq=1
388 !
389 ! initialisation info field
390  do j=1,15
391  info(j)=0
392  enddo
393 ! initial condition f(0)
394 ! core swirl ratio at Rup repectively Rdown depending
395 ! on the type of element centrifugal or centripetal
396 !
397  y(1)= kup
398 !
399  lrw=160
400  liw=60
401 !
402 ! solving the differential equation Möhring 3.35
403 ! dK/dX=f(K(X))
404 !
405  if(dabs(xflow).gt.1e-6) then
406  call ddeabm(dkdx,neq,t,y,x,info,rtol,atol,idid,
407  & rwork,lrw,iwork,liw,rpar,ipar)
408  else
409  y(1)=1/(zk0+1)
410  endif
411 !
412  f_k=y(1)**2*x
413 !
414  return
subroutine dkdx(x, u, uprime, rpar, ipar)
Definition: dKdX.f:24
subroutine ddeabm(DF, NEQ, T, Y, TOUT, INFO, RTOL, ATOL, IDID, RWORK, LRW, IWORK, LIW, RPAR, IPAR)
Definition: ddeabm.f:7
real *8 function f_k(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:363

◆ f_m()

real*8 function f_m ( real*8  x,
real*8  phi,
real*8  lambda1,
real*8  zk0,
real*8  Pup,
real*8  Tup,
real*8  rurd,
real*8  xflow,
real*8  kup 
)
527 !
528  implicit none
529  integer neq,idid,ipar,j,iwork(100),lrw,liw
530  real*8 f_m,x,rpar(8),rtol,atol,y(1),info(15),
531  & rurd,zk0,lambda1,kup,xflow,pup,tup,phi,t,rwork(160)
532 !
533  external dkdm
534 !
535 ! storing the parameters
536  rpar(1)=phi
537  rpar(2)=lambda1
538  rpar(3)=zk0
539  rpar(4)=pup
540  rpar(5)=tup
541  rpar(6)=rurd
542  rpar(7)=xflow
543  rpar(8)=kup
544 !
545 ! relative error
546  rtol=1.d-7
547 ! absolute error
548  atol=1.d-7
549 !
550 ! initial value
551  if(xflow.lt.0d0) then
552  t=rurd
553  else
554  t=1.d0
555  endif
556  neq=1
557 !
558 ! initialisation info field
559  do j=1,15
560  info(j)=0
561  enddo
562 ! initial condition f(0)
563 ! core swirl ratio at Rup
564 !
565  y(1)=0
566 !
567  lrw=160
568  liw=60
569 !
570 ! solving the differential equation Möhring 3.35
571 ! dK/dX=f(K(X))
572 !
573  call ddeabm(dkdm,neq,t,y,x,info,rtol,atol,idid,
574  & rwork,lrw,iwork,liw,rpar,ipar)
575 !
576  f_m=2*y(1)*x
577 !
578  return
real *8 function f_m(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:527
subroutine ddeabm(DF, NEQ, T, Y, TOUT, INFO, RTOL, ATOL, IDID, RWORK, LRW, IWORK, LIW, RPAR, IPAR)
Definition: ddeabm.f:7
subroutine dkdm(x, u, uprime, rpar, ipar)
Definition: dKdm.f:24

◆ f_p()

real*8 function f_p ( real*8  x,
real*8  phi,
real*8  lambda1,
real*8  zk0,
real*8  Pup,
real*8  Tup,
real*8  rurd,
real*8  xflow,
real*8  kup 
)
418 !
419  implicit none
420  integer neq,idid,ipar,iwork(100),lrw,liw,j
421  real*8 f_p,x,rpar(8),rtol,atol,y(1),info(15),rurd,
422  & zk0,lambda1,kup,xflow,pup,tup,phi,t,rwork(160)
423 !
424  external dkdp
425 ! storing the parameters
426  rpar(1)=phi
427  rpar(2)=lambda1
428  rpar(3)=zk0
429  rpar(4)=pup
430  rpar(5)=tup
431  rpar(6)=rurd
432  rpar(7)=xflow
433  rpar(8)=kup
434 !
435 
436 ! relative error
437  rtol=1.d-7
438 ! absolute error
439  atol=1.d-7
440 !
441 ! initial value
442  if(xflow.lt.0d0) then
443  t=rurd
444  else
445  t=1.d0
446  endif
447  neq=1
448 !
449 ! initialisation info field
450  do j=1,15
451  info(j)=0
452  enddo
453 ! initial condition f(0)
454 ! core swirl ratio at Rup
455 !
456  y(1)= 0d0
457 !
458  lrw=160
459  liw=60
460 !
461  call ddeabm(dkdp,neq,t,y,x,info,rtol,atol,idid,
462  & rwork,lrw,iwork,liw,rpar,ipar)
463 !
464  f_p=2*y(1)*x
465 !
466  return
subroutine ddeabm(DF, NEQ, T, Y, TOUT, INFO, RTOL, ATOL, IDID, RWORK, LRW, IWORK, LIW, RPAR, IPAR)
Definition: ddeabm.f:7
real *8 function f_p(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:418
subroutine dkdp(x, u, uprime, rpar, ipar)
Definition: dKdp.f:24

◆ f_t()

real*8 function f_t ( real*8  x,
real*8  phi,
real*8  lambda1,
real*8  zk0,
real*8  Pup,
real*8  Tup,
real*8  rurd,
real*8  xflow,
real*8  kup 
)
470 !
471  implicit none
472  integer neq,idid,ipar,iwork(100),lrw,liw,j
473  real*8 f_t,x,rpar(8),rtol,atol,y(1),info(15),rurd,
474  & zk0,lambda1,kup,xflow, pup,tup,phi,t,rwork(160)
475 !
476  external dkdt
477 !
478 ! storing the parameters
479  rpar(1)=phi
480  rpar(2)=lambda1
481  rpar(3)=zk0
482  rpar(4)=pup
483  rpar(5)=tup
484  rpar(6)=rurd
485  rpar(7)=xflow
486  rpar(8)=kup
487 !
488 ! relative error
489  rtol=1.d-7
490 ! absolute error
491  atol=1.d-7
492 !
493 ! initial value
494  if(xflow.lt.0d0) then
495  t=rurd
496  else
497  t=1.d0
498  endif
499 ! if(xflow.lt.0d0) then
500 ! t=rurd
501 ! else
502 ! t=1.d0
503 ! endif
504  neq=1
505 !
506 ! initialisation info field
507  do j=1,15
508  info(j)=0
509  enddo
510 ! initial condition f(0)
511 ! core swirl ratio at Rup
512 !
513  y(1)= 0d0
514 !
515  lrw=160
516  liw=60
517 !
518  call ddeabm(dkdt,neq,t,y,x,info,rtol,atol,idid,
519  & rwork,lrw,iwork,liw,rpar,ipar)
520 !
521  f_t=2d0*y(1)*x
522 !
523  return
subroutine ddeabm(DF, NEQ, T, Y, TOUT, INFO, RTOL, ATOL, IDID, RWORK, LRW, IWORK, LIW, RPAR, IPAR)
Definition: ddeabm.f:7
subroutine dkdt(x, u, uprime, rpar, ipar)
Definition: dKdt.f:24
real *8 function f_t(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:470

◆ moehring()

subroutine moehring ( integer  node1,
integer  node2,
integer  nodem,
integer  nelem,
character*8, dimension(*)  lakon,
integer, dimension(*)  kon,
integer, dimension(*)  ipkon,
integer, dimension(0:3,*)  nactdog,
logical  identity,
integer, dimension(*)  ielprop,
real*8, dimension(*)  prop,
integer  iflag,
real*8, dimension(0:mi(2),*)  v,
real*8  xflow,
real*8  f,
integer, dimension(*)  nodef,
integer, dimension(*)  idirf,
real*8, dimension(*)  df,
real*8  cp,
real*8  R,
real*8  dvi,
integer  numf,
character*81, dimension(*)  set,
integer, dimension(*)  mi,
real*8  ttime,
real*8  time,
integer  iaxial 
)
22 !
23 ! moehring element
24 ! This subroutines computes the evolution of the core swirl ratio
25 ! for a disc stator system with either centrifugal or centripetal
26 ! flow.
27 ! Theoretical explanations can be found in
28 ! "Untersuchung dfes radialen Druckverlaufes und des übertragenen
29 ! drehmomentes im Radseitenraum von Kreiselpumpen bei glatter,
30 ! ebene Radwand und bei Anvendung von Rückenschaufeln"
31 ! Uwe Klaus Möhring , Dissertation,
32 ! An der Üniversität Carolo-Wilhelmina zu Braunschweig 1976
33 !
34 ! author: Yannick Muller
35 !
36  implicit none
37 !
38  logical identity
39  character*8 lakon(*)
40  character*81 set(*)
41 !
42  integer nelem,nactdog(0:3,*),node1,node2,nodem,numf,
43  & ielprop(*),nodef(*),idirf(*),index,iflag,iaxial,
44  & ipkon(*),kon(*),kgas,key,neval,ier,limit,lenw,last,
45  & iwork2(400),node_up,node_down,mi(*)
46 !
47  real*8 prop(*),v(0:mi(2),*),xflow,f,df(*),r,dvi,pi,
48  & r_min, r_max,cr, r_shroud,rsrmax,gap,swirl_up,
49  & pup,pdown,tup,tdown,kappa,cp,ttime,time,
50  & rup,rdown,k0,kup,cq,re_phi,phi,lambda1, lambda2,
51  & a,b,epsabs,
52  & epsrel,result,abserr,work(1200),zk0,t1,t2,p1,p2,pr,
53  & qred_crit,omega,rurd,c_p,cm,mr,f_k,f_t,f_p,f_m,f_cm,
54  & pdiff,pdiff_min,xflow_0,cq_0,phi_0
55 !
56  external dkdx,dkdp,dkdt,dkdm,f_k,f_t,f_p,f_m,f_cm
57 !
58 ! numf=4
59 !
60  if(iflag.eq.0) then
61  identity=.true.
62 !
63  if(nactdog(2,node1).ne.0)then
64  identity=.false.
65  elseif(nactdog(2,node2).ne.0)then
66  identity=.false.
67  elseif(nactdog(1,nodem).ne.0)then
68  identity=.false.
69  endif
70 !
71  elseif(iflag.eq.1)then
72 !
73  pi=4.d0*datan(1.d0)
74  kappa=(cp/(cp-r))
75  index=ielprop(nelem)
76  qred_crit=dsqrt(kappa/r)*
77  & (1+0.5d0*(kappa-1))**(-0.5*(kappa+1)/(kappa-1))
78 !
79 ! Because there is no explicit expression relating massflow
80 ! to pressure loss for möhrings
81 ! initial mass flow is set to arbitrarily
82 ! with consideration to flow direction
83 !
84  node1=kon(ipkon(nelem)+1)
85  node2=kon(ipkon(nelem)+3)
86  p1=v(2,node1)
87  p2=v(2,node2)
88  t1=v(0,node1)
89  t2=v(0,node2)
90 !
91 ! fictious cross section
92 ! A=1E-5
93  if(p1.gt.p2) then
94  xflow=1/dsqrt(t1)*p1*qred_crit*0.5d0
95  else
96  xflow=-1/dsqrt(t1)*p1*qred_crit*0.5d0
97  endif
98 !
99  elseif(iflag.eq.2)then
100 !
101  numf=4
102  index=ielprop(nelem)
103  pi=4.d0*datan(1.d0)
104 !
105 ! Cr
106  cr=0.315
107 !
108 ! minimal disc radius
109  r_min=prop(index+1)
110 !
111 ! maximal disc radius
112  r_max=prop(index+2)
113 !
114 ! R_min/R_max
115  rurd=r_min/r_max
116 !
117 ! disc/stator gap
118  gap=prop(index+3)
119 !
120 ! shroud radius
121  r_shroud=prop(index+4)
122 !
123 ! R_schroud/R_max
124  rsrmax=r_shroud/r_max
125 !
126 ! defining flow parameters
127 !
128 ! massflow
129  xflow=v(1,nodem)*iaxial
130 !
131 ! upstream node
132  node_up=nint(prop(index+5))
133 !
134 ! downstream node
135  node_down=nint(prop(index+6))
136 !
137 ! centripetal
138  if(lakon(nelem)(2:5).eq.'MRGP') then
139  if(xflow.lt.0d0) then
140  xflow=-xflow
141  endif
142 !
143  rup=r_max
144  rdown=r_min
145 !
146  nodef(1)=node_up
147  nodef(2)=node_up
148  nodef(3)=nodem
149  nodef(4)=node_down
150 !
151 ! centrifugal
152  elseif(lakon(nelem)(2:5).eq.'MRGF') then
153  if(xflow.gt.0d0) then
154  xflow=-xflow
155  endif
156 !
157  rup=r_min
158  rdown=r_max
159 !
160 ! if(xflow.gt.0) then
161  nodef(1)=node_up
162  nodef(2)=node_up
163  nodef(3)=nodem
164  nodef(4)=node_down
165  endif
166 !
167 ! upstream pressure
168  pup=v(2,node_up)
169 !
170 ! downstream pressure
171  pdown=v(2,node_down)
172 !
173 ! Upstream temperature
174  tup=v(0,node_up)
175 !
176 ! downstream temperature
177  tdown=v(0,node_down)
178 !
179  idirf(1)=2
180  idirf(2)=0
181  idirf(3)=1
182  idirf(4)=2
183 !
184 ! rotation related parameters
185 !
186 ! rotation
187 !
188  omega=prop(index+7)
189 !
190 ! swirl at R_upstream
191  swirl_up=prop(index+8)
192 !
193 ! core swirl ratio when xflow=0
194  k0=1/(1+(rsrmax**3.6*
195  & (rsrmax+4.6*gap/r_max))**(4.d0/7.d0))
196 !
197 ! core swirl ratio at R_inlet
198  kup=swirl_up/(omega*rup)
199 !
200 ! dynamic_viscosity
201 ! kgas=0
202 ! call dynamic_viscosity(kgas,Tup,dvi)
203  if(dabs(dvi).lt.1e-30) then
204  write(*,*) '*ERROR in moehring: '
205  write(*,*) ' no dynamic viscosity defined'
206  write(*,*) ' dvi= ',dvi
207  call exit(201)
208 c kgas=0
209 c call dynamic_viscosity(kgas,Tup,dvi)
210  endif
211 !
212 ! defining common coefficients
213 !
214  cq=xflow*r*tup/(pup*omega*(r_max)**3)
215 !
216  re_phi=(omega*r_max**2*pup)/(dvi*r*tup)
217 !
218  phi=cq*(re_phi)**0.2d0
219 !
220  zk0=(1-k0)/k0
221 !
222 ! lambda1
223  lambda1=(r_max-r_min)/dabs(r_max-r_min)*pi*cr/4*
224  & (dvi*r/(omega*r_max**2)**0.2d0*(omega*r_max**3)/r)
225 !
226 ! lambda2
227  lambda2=2d0*r/(omega**2*r_max**2)
228 !
229 !*************************************************************************
230 ! integration of K(X),dKdp(X),dKdT(X),dKdm(X)
231 
232  limit=201
233  lenw=5*limit
234 !
235 ! if(lakon(nelem)(2:5).eq.'MRGF') then
236 !xflow.lt.0d0) then
237 !
238 ! lower integration boundary
239  a=rurd
240 !
241 ! upper integration boundary
242  b=1d0
243 !
244 ! elseif(lakon(nelem)(2:5).eq.'MRGP') then
245 !
246 ! lower integration boundary
247 ! a=1d0
248 !
249 ! upper integration boundary
250 ! b=rurd
251 ! endif
252 !
253 ! absolute error
254  epsabs=1e-7
255 !
256 ! relative error
257  epsrel=1e-7
258 !
259 ! choice for local integration rule
260  key=1
261 !
262 ! determining minimal pressure difference for xflow<<1
263 !
264  if(lakon(nelem)(2:5).eq.'MRGF')then
265  xflow_0=-0.00000003e-3
266  elseif(lakon(nelem)(2:5).eq.'MRGP') then
267  xflow_0=0.00000003e-3
268  endif
269 !
270  cq_0=xflow_0*r*tup/(pup*omega*(r_max)**3)
271 !
272  phi_0=cq_0*(re_phi)**0.2d0
273 !
274  call dqag(f_k,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
275  & limit,lenw,last,iwork2,work,phi_0,lambda1,zk0,pup,tup,
276  & rurd,xflow_0,kup)
277 !
278 ! pressure coefficient
279  c_p=2*result
280  pdiff_min=c_p*pup/(4*r*tup)*omega**2*r_max**2
281  pdiff=dabs(pdown-pup)
282 !
283 ! K(x)
284 !
285  call dqag(f_k,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
286  & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
287  & xflow,kup)
288 !
289 ! residual
290 !
291  if(lakon(nelem)(2:5).eq.'MRGF') then
292  f=lambda2*(pdown-pup)/(pdown+pup)*tup-result
293  elseif(lakon(nelem)(2:5).eq.'MRGP') then
294  f=lambda2*(pup-pdown)/(pup+pdown)*tup-result
295  endif
296 !
297 ! pressure coefficient
298  c_p=2*result
299 !
300 ! moment coefficient
301  call dqag(f_cm,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
302  & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
303  & xflow,kup)
304 !
305  cm=0.5d0*pi*cr*re_phi**(-0.2d0)*result
306  mr=0.5d0*cm*(pup/1000d0/(r*tup))*omega**2*r_max**5
307  pr=mr*omega
308 !
309 ! pressure
310 !
311  call dqag(f_p,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
312  & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
313  & xflow,kup)
314 !
315 ! partial derivative (upstream pressure)
316 !
317  if(lakon(nelem)(2:5).eq.'MRGF') then
318  df(1)=-2*lambda2**pdown/(pdown+pup)**2*tup-result
319  elseif(lakon(nelem)(2:5).eq.'MRGP') then
320  df(1)=2*lambda2**pdown/(pdown+pup)**2*tup-result
321  endif
322 !
323 ! temperature
324 !
325  call dqag(f_t,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
326  & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
327  & xflow,kup)
328 !
329 ! partial derivative (upstream temperature)
330  if(lakon(nelem)(2:5).eq.'MRGF') then
331  df(2)=lambda2**(pdown-pup)/(pdown+pup)-result
332  elseif(lakon(nelem)(2:5).eq.'MRGP') then
333  df(2)=lambda2**(pup-pdown)/(pdown+pup)-result
334  endif
335 !
336 ! mass flow
337 !
338  call dqag(f_m,a,b,epsabs,epsrel,key,result,abserr,neval,ier,
339  & limit,lenw,last,iwork2,work,phi,lambda1,zk0,pup,tup,rurd,
340  & xflow,kup)
341 !
342 ! partial derivative (mass flow)
343  df(3)=-result
344 !
345 ! pressure
346 ! partial derivative (downstream pressure)
347  if(lakon(nelem)(2:5).eq.'MRGF') then
348  df(4)=2*lambda2**pup/(pdown+pup)**2*tup
349  elseif(lakon(nelem)(2:5).eq.'MRGP') then
350  df(4)=-2*lambda2**pup/(pdown+pup)**2*tup
351  endif
352 !
353  endif
354 !
355  xflow=xflow/iaxial
356  df(3)=df(3)*iaxial
357 !
358  return
real *8 function f_m(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:527
subroutine dkdx(x, u, uprime, rpar, ipar)
Definition: dKdX.f:24
subroutine df(x, u, uprime, rpar, nev)
Definition: subspace.f:133
subroutine dqag(f, a, b, epsabs, epsrel, key, result, abserr, neval, ier, limit, lenw, last, iwork, work, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:7
real *8 function f_k(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:363
subroutine dkdt(x, u, uprime, rpar, ipar)
Definition: dKdt.f:24
real *8 function f_p(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:418
real *8 function f_cm(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:582
subroutine dkdp(x, u, uprime, rpar, ipar)
Definition: dKdp.f:24
real *8 function f_t(x, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: moehring.f:470
subroutine dkdm(x, u, uprime, rpar, ipar)
Definition: dKdm.f:24
Hosted by OpenAircraft.com, (Michigan UAV, LLC)