42 integer ielprop(*),nelem,iexp(2),i,j,ier,iwrit1,iexp3(2),
43 & iwrit2,nelem_ref,ipkon(*),kon(*),nelem0,nelem1,nelem2,node10,
44 & node20,nodem0,node11,node21,nodem1,node12,node22,nodem2,
45 & iexpbr1(2) /11,11/,icase,node0,node1,node2,mi(*),n0,n1,n2,
46 & n5,n6,n8,n10,n11,n12,n14,n15,n22,iaxial,index
48 real*8 zeta,prop(*),lzd,reynolds,ereo,fa2za1,zetap,zeta0,
49 & lambda,thau,a1,a2,dh,dl,a2za1,ldumm,dhdumm,ks,
50 & form_fact,zeta01,zeta02,alpha,rad,delta,a0,b0,azb,rzdh,
51 & a,c,rei,lam,ai,
b1,
c1,b2,c2,zeta1,re_val,k,ldre,
52 & zetah,cd,cdu,km,tt0,ts0,tt1,ts1,tt2,ts2,
53 & rho0,rho1,rho2,v0,
v1,v2,a0a1,a0a2,zetlin,lam10,lam20,pi,
54 & alpha1,alpha2,r,kappa,ang1s,ang2s,cang1s,cang2s,
55 & v(0:mi(2),*),v1v0,v2v0,z1_60,z1_90,
56 & z2_60,z2_90,afakt,v2v0l,kb,ks2,a2a0,z90lim11,z90lim51,
57 & lam11,lam12,lam21,lam22,w2w0,w1w0,dh0,dh2,hq,z2d390,
58 & z1p090,z90,z60,pt0,pt2,pt1,m0,m1,m2,w0w1,w0w2,
59 & xflow0,xflow1,xflow2,qred_0, qred_1, qred_2,qred_crit
72 real*8 xre (14), yere (14)
73 data xre /25.,40.,60.0,100.,200.,400.,1000.,2000.,4000.,
74 & 10000.,20000.,100000.,200000.,1000000./
75 data yere /0.34,0.36,0.37,0.40,0.42,0.46,0.53,0.59,
76 & 0.64,0.74,0.81,0.94,0.95,0.98/
81 data ((zzeta(i,j),i=1,15),j=1,11)
82 & /15.011 ,25.0,40.0,60.0,100.0,200.0,400.0,1000.0,2000.0,
83 & 4000.0,10000.0,20000.0,100000.0,200000.0,1000000.0,
84 & 0.00 ,1.94,1.38,1.14,0.89,0.69,0.64,0.39,0.30,0.22,0.15,
85 & 0.11,0.04,0.01,0.00,
86 & 0.20 ,1.78,1.36,1.05,0.85,0.67,0.57,0.36,0.26,0.20,0.13,
87 & 0.09,0.03,0.01,0.00,
88 & 0.30 ,1.57,1.16,0.88,0.75,0.57,0.43,0.30,0.22,0.17,0.10,
89 & 0.07,0.02,0.01,0.00,
90 & 0.40 ,1.35,0.99,0.79,0.57,0.40,0.28,0.19,0.14,0.10,0.06,
91 & 0.04,0.02,0.01,0.00,
92 & 0.50 ,1.10,0.75,0.55,0.34,0.19,0.12,0.07,0.05,0.03,0.02,
93 & 0.01,0.01,0.01,0.00,
94 & 0.60 ,0.85,0.56,0.30,0.19,0.10,0.06,0.03,0.02,0.01,0.01,
95 & 0.00,0.00,0.00,0.00,
96 & 0.70 ,0.58,0.37,0.23,0.11,0.06,0.03,0.02,0.01,0.00,0.00,
97 & 0.00,0.00,0.00,0.00,
98 & 0.80 ,0.40,0.24,0.13,0.06,0.03,0.02,0.01,0.00,0.00,0.00,
99 & 0.00,0.00,0.00,0.00,
100 & 0.90 ,0.20,0.13,0.08,0.03,0.01,0.00,0.00,0.00,0.00,0.00,
101 & 0.00,0.00,0.00,0.00,
102 & 0.95 ,0.03,0.03,0.02,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
103 & 0.00,0.00,0.00,0.00/
107 real*8 xlzd (10), ytor (10)
108 data xlzd /0.0,0.2,0.4,0.6,0.8,1.0,1.2,1.6,2.0,2.4/
109 data ytor /1.35,1.22,1.10,0.84,0.42,0.24,0.16,0.07,0.02,0.0/
121 & 0.,0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8,2.0,10.0/
124 & 2.85,2.72,2.6,2.34,1.95,1.76,1.67,1.62,1.6,1.58,1.55,1.55/
130 & 25.,40.,60.,100.,200.,400.,1000.,2000.,4000.,10000.,
131 & 20000.,50000.,100000.,1000000./
134 & 1.94,1.38,1.14,.89,.69,.54,.39,.3,.22,.15,.11,.04,.01,0./
140 & 1.,1.05,1.09,1.15,1.23,1.37,1.56,1.71,1.88,2.17,2.38,2.56,
152 & 14.008, 10.000,15.0,20.0,30.0,40.0,50.0,100.0,200.0,500.0,
153 & 1000.0,2000.0,3000.0,3500.0,
154 & .01 ,3.10,3.20,3.00,2.40,2.15,1.95,1.70,1.65,1.70,2.00,
156 & 0.1 ,3.10,3.20,3.00,2.40,2.15,1.95,1.70,1.65,1.70,2.00,
158 & 0.2 ,3.10,3.20,2.80,2.20,1.85,1.65,1.40,1.30,1.30,1.60,
160 & 0.3 ,3.10,3.10,2.60,2.00,1.60,1.40,1.20,1.10,1.10,1.30,
162 & 0.4 ,3.10,3.00,2.40,1.80,1.50,1.30,1.10,1.00,0.85,1.05,
164 & 0.5 ,3.10,2.80,2.30,1.65,1.35,1.15,0.90,0.75,0.65,0.90,
166 & 0.6 ,3.10,2.70,2.15,1.55,1.25,1.05,0.80,0.60,0.40,0.60,
180 & 14.007 ,10.0,20.0,30.0,40.0,50.0,100.0,200.0,500.0,1000.0,
181 & 2000.0,4000.0,5000.0,10000.0,
182 &0.1 ,5.00,3.20,2.40,2.00,1.80,1.30,1.04,0.82,0.64,0.50,
184 &0.2 ,5.00,3.10,2.30,1.84,1.62,1.20,0.95,0.70,0.50,0.40,
186 &0.3 ,5.00,2.95,2.15,1.70,1.50,1.10,0.85,0.60,0.44,0.30,
188 &0.4 ,5.00,2.80,2.00,1.60,1.40,1.00,0.78,0.50,0.35,0.25,
190 &0.5 ,5.00,2.70,1.80,1.46,1.30,0.90,0.65,0.42,0.30,0.20,
192 &0.6 ,5.00,2.60,1.70,1.35,1.20,0.80,0.56,0.35,0.24,0.15,
199 & 10.007 ,0.,10.0,20.0,30.0,40.0,60.0,100.0,140.0,180.0,
200 & 0.025 ,0.50,0.47,0.45,0.43,0.41,0.40,0.42,0.45,0.50,
201 & 0.050 ,0.50,0.45,0.41,0.36,0.33,0.30,0.35,0.42,0.50,
202 & 0.075 ,0.50,0.42,0.35,0.30,0.26,0.23,0.30,0.40,0.50,
203 & 0.100 ,0.50,0.39,0.32,0.25,0.22,0.18,0.27,0.38,0.50,
204 & 0.150 ,0.50,0.37,0.27,0.20,0.16,0.15,0.25,0.37,0.50,
205 & 0.600 ,0.50,0.27,0.18,0.13,0.11,0.12,0.23,0.36,0.50/
215 & 0 .25,0.50,0.75,1.00,1.50,2.00,3.00,4.00,5.00,6.00,7.00,8.00/
219 & 1.10,1.07,1.04,1.00,0.95,0.90,0.83,0.78,0.75,0.72,0.71,0.70/
225 & 20.0,30.0,45.0,60.0,75.0,90.0,110.,130.,150.,180./
229 & 2.50,2.22,1.87,1.50,1.28,1.20,1.20,1.20,1.20,1.20/
237 & 0.31,0.45,0.60,0.78,0.90,1.00,1.13,1.20,1.28,1.40/
243 & 0.50,0.60,0.70,0.80,0.90,1.00,1.25,1.50/
247 & 1.18,0.77,0.51,0.37,0.28,0.21,0.19,0.17/
253 & 1.30,1.17,1.09,1.00,0.90,0.85,0.85,0.90,095,0.98,1.00,1.00/
262 & 1.00,2.00,4.00,6.00,8.00,10.0,15.0,20.0,25.0,30.0,35.0,40.0,
267 & 0.21,0.15,0.11,0.09,0.07,0.07,0.06,0.05,0.05,0.04,0.04,0.03,
274 & 1.80,1.45,1.20,1.00,0.68,0.45,0.40,0.43,0.48,0.55,0.58,0.60/
283 DATA((zzetao(i,j),i=1,14),j=1,8) /
284 & 14.015,0.5,0.6,0.8,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.,
285 & 10.00, 0.030,0.025,0.021,0.016,0.022,0.030,0.034,0.036,0.040,
286 & 0.042,0.043,0.044,0.044,
287 & 15.00, 0.036,0.035,0.025,0.025,0.033,0.042,0.045,0.050,0.055,
288 & 0.055,0.058,0.060,0.063,
289 & 20.00, 0.056,0.046,0.034,0.034,0.045,0.054,0.056,0.062,0.066,
290 & 0.067,0.072,0.075,0.080,
291 & 30.00, 0.122,0.094,0.063,0.056,0.063,0.071,0.075,0.082,0.087,
292 & 0.089,0.097,0.101,0.110,
293 & 40.00, 0.220,0.160,0.100,0.085,0.080,0.086,0.092,0.100,0.106,
294 & 0.122,0.121,0.126,0.136,
295 & 50.00, 0.340,0.245,0.148,0.117,0.097,0.100,0.108,0.116,0.123,
296 & 0.133,0.144,0.150,0.159,
297 & 60.00, 0.480,0.350,0.196,0.150,0.115,0.116,0.122,0.131,0.140,
298 & 0.153,0.164,0.171,0.181/
299 DATA((zzetao(i,j),i=1,14),j=9,15) /
300 & 70.00, 0.645,0.466,0.243,0.186,0.132,0.130,0.136,0.148,0.160,
301 & 0.172,0.185,0.191,0.200,
302 & 80.00, 0.827,0.600,0.288,0.220,0.147,0.142,0.150,0.166,0.180,
303 & 0.191,0.203,0.209,0.218,
304 & 90.00, 1.000,0.755,0.333,0.247,0.159,0.155,0.166,0.185,0.197,
305 & 0.209,0.220,0.227,0.236,
306 & 100.0, 1.125,0.863,0.375,0.264,0.167,0.166,0.183,0.202,0.214,
307 & 0.225,0.238,0.245,0.255,
308 & 120.0, 1.260,0.983,0.450,0.281,0.180,0.188,0.215,0.234,0.247,
309 & 0.260,0.273,0.282,0.291,
310 & 150.0, 1.335,1.060,0.536,0.289,0.189,0.214,0.251,0.272,0.297,
311 & 0.312,0.325,0.336,0.346,
312 & 180.0, 1.350,1.100,0.600,0.290,0.190,0.225,0.280,0.305,0.347,
313 & 0.364,0.378,0.390,0.400/
317 & 22.004,1.e+3,2.e+3,3.e+3,4.e+3,5.e+3,6.e+3,7.e+3,8.e+3,9.e+3,
318 & 1.e+4,2.e+4,3.e+4,4.e+4,6.e+4,8.e+4,1.e+5,2.e+5,3.e+5,
320 & 1.0, 3.88,3.06,2.77,2.60,2.49,2.40,2.33,2.27,2.22,2.18,
321 & 1.86,1.69,1.57,1.41,1.30,1.22,5*1.00,
322 & 1.5, 3.88,3.06,2.77,2.60,2.49,2.40,2.33,2.27,2.22,2.18,
323 & 1.90,1.76,1.67,1.54,1.46,1.40,1.22,1.12,3*1.00,
324 & 2.0, 3.88,3.06,2.77,2.60,2.49,2.40,2.33,2.27,2.22,2.18,
325 & 1.93,1.80,1.71,1.60,1.53,1.47,1.32,1.23,1.13,1.06,1.00/
339 & 0.000,0.001,0.0035,0.0065,0.010,0.0150,0.020,
340 & 0.025,0.035,0.045,0.056,0.065/
344 & 1.00,1.200,1.40,1.54,1.63,1.73,1.80,1.85,1.93,
355 real*8 xang(11),yang(11)
356 data (xang(i),yang(i),i=1,11)
375 real*8 ta2a0(12),tafakt(12)
376 data (ta2a0(i),tafakt(i),i=1,12)
398 real*8 kbtab(6,7),kstab(6,6)
399 data ((kbtab(i,j),j=1,7),i=1,6)
400 & /6.007d0 ,0.d0,15.d0,30.d0,45.d0,60.d0 ,90.d0 ,
401 & 0.d0 ,0.d0, 0.d0, 0.d0, 0.d0, 0.d0 , 0.d0 ,
402 & 0.1d0 ,0.d0, 0.d0, 0.d0, 0.d0, 0.d0 , 0.d0 ,
403 & 0.2d0 ,0.d0, 0.d0, 0.d0, 0.d0, 0.d0 , 0.1d0 ,
404 & 0.33d0,0.d0, 0.d0, 0.d0, 0.d0, 0.d0 , 0.2d0 ,
405 & 0.5d0 ,0.d0, 0.d0, 0.d0, 0.d0, 0.1d0 , 0.25d0/
409 data ((kstab(i,j),j=1,6),i=1,6)
410 & /6.006d0 ,0.d0,15.d0 ,30.d0 ,45.d0 , 60.d0 ,
411 & 0.d0 ,0.d0, 0.d0 , 0.d0 , 0.d0 , 0.d0 ,
412 & 0.1d0 ,0.d0, 0.d0 , 0.d0 , 0.05d0, 0.d0 ,
413 & 0.2d0 ,0.d0, 0.d0 , 0.d0 , 0.14d0, 0.d0 ,
414 & 0.33d0,0.d0, 0.14d0, 0.17d0, 0.14d0, 0.1d0 ,
415 & 0.5d0 ,0.d0, 0.4d0 , 0.4d0 , 0.3d0 , 0.25d0/
420 data ((z90tab(i,j),j=1,13),i=1,6)/
421 &6.013,0. ,0.03,0.05,0.1 ,0.2 ,0.3 ,0.4 ,0.5 ,0.6 ,0.7 ,0.8 ,1.0 ,
422 & .06, .02, .05, .08, .08, .07, .01,-.15,1.e9,1.e9,1.e9,1.e9,1.e9,
423 & .10, .04, .08, .10, .20, .26, .20, .05,-.13,1.e9,1.e9,1.e9,1.e9,
424 & .20, .08, .12, .18, .25, .34, .32, .26, .16, .02,-.14,1.e9,1.e9,
425 & .33, .45, .50, .52, .59, .66, .64, .62, .58, .44, .27, .08,-.34,
426 & .50,1.00,1.04,1.06,1.16,1.25,1.25,1.22,1.10, .88, .70, .45,0. /
430 real*8 z90limx (5),z90limy(5)
432 & /0.06d0,0.1d0,0.2d0,0.33,0.5d0 /
435 & /0.1d0,0.1d0,0.3d0,0.5d0,0.7d0/
453 if((lakon(nelem)(2:5).eq.
'REUS').or.
454 & (lakon(nelem)(2:5).eq.
'LPUS'))
then 462 elseif((lakon(nelem)(2:5).eq.
'REEN').or.
463 & (lakon(nelem)(2:5).eq.
'LPEN'))
then 471 elseif((lakon(nelem)(2:7).eq.
'RELOID').or.
472 & (lakon(nelem)(2:7).eq.
'LPLOID'))
then 484 if((dh.eq.0.d0).and.(a1.le.a2))
then 486 elseif((dh.eq.0.d0).and.(a1.gt.a2))
then 498 if( lzd.gt.2.4 ) iwrit1= 1
508 call onedint(xlzd,ytor,n10,lzd,thau,n1,n1,n0,ier)
509 zeta0=((0.5+thau*dsqrt(fa2za1))+fa2za1) * fa2za1
511 if(reynolds.gt.1.e+05 )
then 512 zeta=zeta0 + lambda * dabs(lzd)
514 call onedint(xre,yere,n14,reynolds,ereo,n1,n1,n0,ier)
516 call twodint(zzeta,n15,n11,reynolds,
517 & a2za1,zetap,n1,iexp,ier)
518 zeta=zetap + ereo * zeta0 + lambda * dabs(lzd)
519 IF( a2za1.gt.0.95 ) iwrit1=1
522 if(dabs(lzd) .le. 0.015 )
then 523 write(*,*)
'*WARNING in zeta_calc: L/DH outside valid' 524 write(*,*)
' range ie less than 0.015 !' 527 if( iwrit1.eq.1 )
then 529 &
'WARNING in zeta_calc: geometry data outside valid range' 531 &
' l/dh greater than 2.4- extrapolated value(s) !' 534 elseif((lakon(nelem)(2:7).eq.
'REWAOR').or.
535 & (lakon(nelem)(2:7).eq.
'LPWAOR'))
then 547 if((dh.eq.0.d0).and.(a1.le.a2))
then 549 elseif((dh.eq.0.d0).and.(a1.gt.a2))
then 563 call onedint (xlqd,yzeta1,n12,lzd,zeta01,n1,n1,n0,ier)
566 if(lzd.gt.10.) iwrit1=1
568 if(reynolds.le.1.e+05)
then 570 call onedint (xre2,yzeta2,n14,reynolds,zeta02,n1,n1,n10,ier)
571 call onedint (xre2,yere2,n14,reynolds,ereo,n1,n1,n0,ier)
573 zeta=zeta02+0.342*ereo*zeta01+lambda*lzd
575 elseif(reynolds.gt.1.e+05)
then 576 zeta=zeta01+lambda*lzd
578 if(lzd.le.0.015)
then 579 write(*,*)
'*WARNING in zeta_calc' 581 &
' l/dh outside valid range i.e. less than 0.015 !' 584 write(*,*)
'*WARNING in zeta_calc :extrapolated value(s)!' 589 elseif((lakon(nelem)(2:5).eq.
'REEL').or.
590 & (lakon(nelem)(2:5).eq.
'LPEL'))
then 604 if(reynolds.LE.10.)
then 606 elseif(reynolds.gt.10.and.reynolds.le.3.5e+03)
then 607 call twodint(zzeta3,n14,n11,reynolds,a2za1,zeta,n1,iexp3,
609 if(a2za1.lt.0.01.or.a2za1.gt.0.6) iwrit1=1
615 write(*,*)
'*WARNING in zeta_calc: extrapolated value(s)!' 619 elseif((lakon(nelem)(2:5).eq.
'RECO').or.
620 & (lakon(nelem)(2:5).eq.
'LPCO'))
then 632 if((dh.eq.0.d0).and.(a1.le.a2))
then 634 elseif((dh.eq.0.d0).and.(a1.gt.a2))
then 648 if(reynolds.le.10.)
then 650 elseif(reynolds.gt.10.and.reynolds.le.1.e+04)
then 651 call twodint(zzeta41,n14,n11,reynolds,a2za1,zeta,n1,iexp,
653 if(a2za1.le.0.1.or.a2za1.gt.0.6) iwrit1=1
654 elseif(reynolds.gt.1.e+04)
then 657 elseif(dl.gt.0.d0)
then 658 call twodint(zzeta42,n10,n0,alpha,lzd,zeta0,n1,iexp,ier)
659 zeta=zeta0*(1.-a2za1)
660 if(lzd.lt.0.025 .or. lzd.gt.0.6) iwrit1=1
661 if(reynolds .le. 1.e+04)
then 662 write(*,*)
'*WARNING in zeta_calc: reynolds outside valid 663 & range i.e. < 10 000 !' 667 if( iwrit1.eq.1 )
then 668 WRITE(*,*)
'*WARNING in zeta_calc: extrapolierte Werte!' 673 elseif((lakon(nelem)(2:7).eq.
'REBEID').or.
674 & (lakon(nelem)(2:7).eq.
'LPBEID'))
then 693 if((dh.eq.0.d0).and.(a1.le.a2))
then 695 elseif((dh.eq.0.d0).and.(a1.gt.a2))
then 710 if(a0.gt.0.) azb=a0/b0
713 call onedint(xaqb,yc,n12,azb,c,n1,n1,n0,ier)
714 zeta1=0.95*(sin(delta*0.0087))**2+2.05*(sin(delta*0.0087))**4
715 call onedint(xdelta,ya,n10,delta,a,n1,n1,n10,ier)
717 if(azb.le.0.25.or.azb.gt.8.0) iwrit2=1
718 if(reynolds.lt.4.e+04)
then 719 if(reynolds.le.3.e+03) iwrit1=1
720 rei=
max(2999.,reynolds)
733 elseif(rzdh.gt.0.5.and.rzdh.lt.1.5)
then 734 call onedint(xdelta,ya1,n10,delta,ai,n1,n1,n10,ier)
735 call onedint(xrqdh,yb1,n8,rzdh,
b1,n1,n1,n10,ier)
736 call onedint(xaqb,yc1,n12,azb,
c1,n1,n1,n10,ier)
737 rei=
max(2.e5,reynolds)
744 zeta=ai*
b1*
c1+0.0175*delta*rzdh*lambda
745 if(azb.lt.0.25.or.azb.gt.8.0) iwrit2=1
746 if(reynolds.lt.2.e+05)
then 747 IF(reynolds.lt.3.e+03) iwrit1=1
748 rei=
max(2999.,reynolds)
757 elseif(rzdh.ge.1.5.and.rzdh.lt.50.)
then 758 call onedint(xdelta,ya1,n10,delta,ai,n1,n1,n10,ier)
759 call onedint(xaqb,yc2,n12,azb,c2,n1,n1,n10,ier)
760 call onedint(xrzdh,yb2,n8,rzdh,b2,n1,n1,n0,ier)
761 rei=
max(2.e5,reynolds)
768 zeta=ai*b2*c2+0.0175*delta*rzdh*lambda
769 if(azb.lt.0.25.or.azb.gt.8.0) iwrit2=1
770 if(reynolds.lt.2.e+05)
then 771 if(reynolds.lt.3.e+03) iwrit1=1
772 rei=
max(2999.,reynolds)
781 elseif(rzdh.ge.50.)
then 782 zeta=0.0175*rzdh*delta*lambda
783 if(reynolds.lt.2.e+04)
then 784 write (*,*)
'Reynolds outside valid range i.e. < 20 000!' 790 write (*,*)
'Reynolds outside valid range i.e. < 3 000!' 794 write(*,*)
'*WARNING in zeta_calc: extrapolated value(s)!' 798 elseif((lakon(nelem)(2:7).eq.
'REBEMI').or.
799 & (lakon(nelem)(2:7).eq.
'LPBEMI'))
then 818 if( delta.lt.10. .or. delta.gt.180. .or.
819 & rzdh .lt.0.5 .or. rzdh. gt. 10. ) iwrit1=1
821 call twodint(zzetao,n14,n11,rzdh,delta,zeta0,n1,iexp6,ier)
822 call twodint(kre, n22,n11,reynolds,rzdh, k,n1,iexp6,ier)
825 if( reynolds.lt.1.e+3 .or. reynolds.gt.1.e+6 )
then 826 write (*,*)
'Reynolds outside valid range <1.E+3 or >1.0E+6' 829 if( iwrit1.eq.1 )
then 830 write (*,*)
': geometry data outside valid range ' 831 write (*,*)
' - extrapolated value(s)!' 835 elseif((lakon(nelem)(2:7).eq.
'REBEMA').or.
836 & (lakon(nelem)(2:7).eq.
'LPBEMA'))
then 840 Write(*,*)
'*WARNING in zeta_calc: ZETA implicitly equal 1' 845 elseif((lakon(nelem)(2:5).eq.
'REEX').or.
846 & (lakon(nelem)(2:5).eq.
'LPEX'))
then 858 if((dh.eq.0.d0).and.(a1.le.a2))
then 860 elseif((dh.eq.0.d0).and.(a1.gt.a2))
then 864 nelem_ref=nint(prop(index+4))
866 if(lakon(nelem_ref)(2:5).ne.
'GAPF')
then 867 write(*,*)
'*ERROR in zeta_calc :the reference element is no 872 if(lakon(nelem_ref)(2:6).eq.
'GAPFI')
then 876 dl=abs(prop(ielprop(nelem_ref)+3))
878 if(reynolds .le. 2300.)
then 881 call onedint (xdre,zetaex,n12,ldre,zeta,n1,n1,n0,ier)
882 elseif((reynolds.gt.2300).and.(reynolds.lt.3000))
then 885 call onedint (xdre,zetaex,n12,ldre,zetah,n1,n1,n0,ier)
886 zeta=zetah-(zetah-1.)*((reynolds-2300.)/700.)
894 elseif((lakon(nelem)(2:7).eq.
'RELOLI').or.
895 & (lakon(nelem)(2:7).eq.
'LPLOLI'))
then 913 if((dh.eq.0.d0).and.(a1.le.a2))
then 915 elseif((dh.eq.0.d0).and.(a1.gt.a2))
then 927 if(reynolds.gt.2.e04)
then 929 &
'*WARNING in zeta_calc: range of application exceeded !' 938 elseif((lakon(nelem)(2:5).eq.
'REBR').or.
939 & (lakon(nelem)(2:5).eq.
'LPBR'))
then 940 nelem0=nint(prop(index+1))
941 nelem1=nint(prop(index+2))
942 nelem2=nint(prop(index+3))
951 node10=kon(ipkon(nelem0)+1)
952 node20=kon(ipkon(nelem0)+3)
953 nodem0=kon(ipkon(nelem0)+2)
955 node11=kon(ipkon(nelem1)+1)
956 node21=kon(ipkon(nelem1)+3)
957 nodem1=kon(ipkon(nelem1)+2)
959 node12=kon(ipkon(nelem2)+1)
960 node22=kon(ipkon(nelem2)+3)
961 nodem2=kon(ipkon(nelem2)+2)
965 if(node10.eq.node11)
then 968 if(node11.eq.node12)
then 970 elseif(node11.eq.node22)
then 973 elseif(node10.eq.node21)
then 976 if(node21.eq.node12)
then 978 elseif(node21.eq.node22)
then 981 elseif(node20.eq.node11)
then 984 if(node11.eq.node12)
then 986 elseif(node11.eq.node22)
then 989 elseif(node20.eq.node21)
then 992 if(node11.eq.node21)
then 994 elseif(node21.eq.node22)
then 1001 if(lakon(nelem)(2:3).eq.
'RE')
then 1005 qred_crit=dsqrt(kappa/r)*
1006 & (1+0.5d0*(kappa-1))**(-0.5d0*(kappa+1)/(kappa-1))
1011 xflow0=iaxial*v(1,nodem0)
1015 qred_0=dabs(xflow0)*dsqrt(tt0)/(a0*pt0)
1016 if(qred_0.gt.qred_crit)
1018 xflow0=qred_crit*(a0*pt0)/dsqrt(tt0)
1021 call ts_calc(xflow0,tt0,pt0,kappa,r,a0,ts0,icase)
1022 m0=dsqrt(2/(kappa-1)*(tt0/ts0-1))
1024 rho0=pt0/(r*tt0)*(tt0/ts0)**(-1/(kappa-1))
1027 xflow1=iaxial*v(1,nodem1)
1031 qred_1=dabs(xflow1)*dsqrt(tt1)/(a1*pt1)
1032 if(qred_1.gt.qred_crit)
1034 xflow1=qred_crit*(a1*pt1)/dsqrt(tt1)
1037 call ts_calc(xflow1,tt1,pt1,kappa,r,a1,ts1,icase)
1038 m1=dsqrt(2/(kappa-1)*(tt1/ts1-1))
1040 rho1=pt1/(r*tt1)*(tt1/ts1)**(-1/(kappa-1))
1043 xflow2=iaxial*v(1,nodem2)
1047 qred_2=dabs(xflow2)*dsqrt(tt2)/(a2*pt2)
1048 if(qred_2.gt.qred_crit)
then 1049 xflow2=qred_crit*(a2*pt2)/dsqrt(tt2)
1052 call ts_calc(xflow2,tt2,pt2,kappa,r,a2,ts2,icase)
1053 m2=dsqrt(2/(kappa-1)*(tt2/ts2-1))
1054 rho2=pt2/(r*tt2)*(tt2/ts2)**(-1/(kappa-1))
1067 v0=dabs(xflow0/rho0)
1068 v1=dabs(xflow1/rho1)
1069 v2=dabs(xflow2/rho2)
1087 if((lakon(nelem)(2:7).eq.
'REBRJG').or.
1088 & (lakon(nelem)(2:7).eq.
'LPBRJG'))
then 1090 ang1s=(1.41d0-0.00594*alpha1)*alpha1*pi/180
1091 ang2s=(1.41d0-0.00594*alpha2)*alpha2*pi/180
1098 zetlin=2.d0*(v1v0**2*a0a1*cang1s+v2v0**2*a0a2*cang2s)
1100 if(nelem.eq.nelem1)
then 1101 call onedint(xang,yang,n11,alpha1,lam10,n1,n2,n22,ier)
1102 zeta=lam10/64*(v1v0*a0a1)**2-zetlin+1d0
1105 elseif(nelem.eq.nelem2)
then 1106 call onedint(xang,yang,n11,alpha2,lam20,n1,n2,n22,ier)
1107 zeta=lam20/64*(v2v0*a0a2)**2-zetlin+1d0
1111 write(*,*)
'*WARNING in zeta_calc: in Element',nelem,
1112 &
'TYPE= ',lakon(nelem)(2:5)
1113 write(*,*)
' Zeta value negative is set to 0.01' 1118 elseif((lakon(nelem)(2:8).eq.
'REBRJI1').or.
1119 & (lakon(nelem)(2:8).eq.
'LPBRJI1'))
then 1128 if(alpha2.lt.60.d0)
then 1129 if(nelem.eq.nelem1)
then 1131 & -2.d0*a0a2*v2v0**2*dcos(alpha2*pi/180)
1133 elseif(nelem.eq.nelem2)
then 1135 & -2.d0*a0a2*v2v0**2*dcos(alpha2*pi/180)
1136 & +(a0a2*v2v0)**2-v1v0**2
1140 elseif(alpha2.eq.60.d0)
then 1144 if(nelem.eq.nelem1)
then 1145 zeta=1.d0-v1v0**2-a0a2*v2v0**2
1147 elseif(nelem.eq.nelem2)
then 1148 zeta=1.d0-v1v0**2-a0a2*v2v0**2
1149 & +(a0a2*v2v0)**2-v1v0**2
1153 elseif(alpha2.lt.90.d0)
then 1157 z1_60=1.d0-v1v0**2-a0a2*v2v0**2
1158 z1_90=(1.55d0-v2v0)*v2v0
1159 if(nelem.eq.nelem1)
then 1160 zeta=z1_60+(z1_90-z1_60)*(alpha2-60.d0)/30
1162 elseif(nelem.eq.nelem2)
then 1163 z2_60=z1_60+(a0a2*v2v0)**2-v1v0**2
1164 call onedint(ta2a0,tafakt,n12,a2a0,afakt,
1166 z2_90=afakt*(1.d0+(a0a2*v2v0)**2-2.d0*v1v0**2)
1167 zeta=z2_60+(z2_90-z2_60)*(alpha2-60.d0)/30d0
1171 elseif(alpha2.eq.90.d0)
then 1172 if(nelem.eq.nelem1)
then 1173 zeta=(1.55d0-v2v0)*v2v0
1175 elseif(nelem.eq.nelem2)
then 1176 call onedint(ta2a0,tafakt,n12,a2a0,afakt,
1178 zeta=afakt*(1.d0+(a0a2*v2v0)**2-2.d0*v1v0**2)
1183 write(*,*)
'*WARNING in zeta_calc: in Element',nelem,
1184 &
'TYPE= ',lakon(nelem)(2:5)
1185 write(*,*)
' Zeta value negative is set to 0.01' 1190 elseif((lakon(nelem)(2:8).eq.
'REBRJI2').or.
1191 & (lakon(nelem)(2:8).eq.
'LPBRJI2'))
then 1199 if(alpha2.lt.60.d0)
then 1200 if(nelem.eq.nelem1)
then 1201 zeta=1+a0a1*v1v0**2*(a0a1-2.)
1202 & -2d0*a0a2*v2v0**2*dcos(alpha2*pi/180)
1204 call twodint(kstab,n6,n11,a2a0,alpha2,ks2,n1
1208 elseif(nelem.eq.nelem2)
then 1209 zeta=1+a0a1*v1v0**2*(a0a1-2.)
1210 & -2d0*a0a2*v2v0**2*dcos(alpha2*pi/180)
1211 & -(a0a1*v1v0)**2+(a0a2*v2v0)**2
1212 call twodint(kbtab,n6,n11,a2a0,alpha2,kb,n1,
1218 elseif(alpha2.eq.60.d0)
then 1220 if(nelem.eq.nelem1)
then 1221 zeta=1+a0a1*v1v0**2*(a0a1-2.)-a0a2*v2v0**2
1222 call twodint(kstab,n6,n11,a2a0,alpha2,ks2,n1,
1226 elseif(nelem.eq.nelem2)
then 1227 zeta=1+a0a1*v1v0**2*(a0a1-2.)-a0a2*v2v0**2
1228 & -(a0a1*v1v0)**2+(a0a2*v2v0)**2
1229 call twodint(kbtab,n6,n11,a2a0,alpha2,kb,n1,
1235 elseif(alpha2.lt.90.d0)
then 1237 z1_60=1+a0a1*v1v0**2*(a0a1-2.)-a0a2*v2v0**2
1239 call twodint(kstab,n6,n11,a2a0,alpha2,ks2,n1,
1242 if(nelem.eq.nelem1)
then 1243 call twodint(z90tab,n6,n11,a2a0,v2v0,z1_90,
1245 zeta=z1_60+(z1_90-z1_60)*(alpha2-60)/30
1247 elseif(nelem.eq.nelem2)
then 1248 z2_60=z1_60-(a0a1*v1v0)**2+(a0a2*v2v0)**2
1249 call twodint(kbtab,n6,n11,a2a0,alpha2,kb,n1,
1252 z2_90=1.+(a0a2*v2v0)**2-2*a0a1*v1v0**2+kb
1253 zeta=z2_60+(z2_90-z2_60)*(alpha2-60)/30
1256 elseif(alpha2.eq.90.d0)
then 1257 if(nelem.eq.nelem2)
then 1258 call twodint(kbtab,n6,n11,a2a0,alpha2,kb,n1,
1260 zeta=1.+(a0a2*v2v0)**2-2*a0a1*v1v0**2+kb
1262 elseif(nelem.eq.nelem1)
then 1264 call twodint(z90tab,n6,n11,a2a0,v2v0,zeta,
1272 if((a2a0.ge.z90lim11)
1273 & .and.(a2a0.le.z90lim51))
then 1274 call onedint(z90limx,z90limy,n5,a2a0,
1275 & v2v0l,n1,n1,n11,ier)
1276 if(v2v0.gt.v2v0l)
then 1277 write(*,*)
'WARNING in zeta_calc: in element',
1280 &
' V2V0 in the extrapolated domain' 1281 write(*,*)
' for zeta table (branch 1)' 1287 write(*,*)
'*WARNING in zeta_calc: in Element',nelem,
1288 &
'TYPE= ',lakon(nelem)(2:5)
1289 write(*,*)
' Zeta value negative is set to 0.01' 1294 elseif((lakon(nelem)(2:7).eq.
'REBRSG').or.
1295 & (lakon(nelem)(2:7).eq.
'LPBRSG'))
then 1303 if(nelem.eq.nelem1)
then 1305 ang1s=(1.41d0-0.00594*alpha1)*alpha1*pi/180
1309 if(alpha1.le.22.5)
then 1310 lam11=0.0712*alpha1**0.7041+0.37
1311 lam12=0.0592*alpha1**0.7029+0.37
1316 zeta=lam11+(2.d0*lam12-lam11)*(v1v0*a0a1)**2
1317 & -2d0*lam12*v1v0*a0a1*cang1s
1320 elseif(nelem.eq.nelem2)
then 1322 ang2s=(1.41d0-0.00594*alpha2)*alpha2*pi/180
1326 if(alpha2.le.22.5)
then 1327 lam21=0.0712*alpha2**0.7041+0.37
1328 lam22=0.0592*alpha2**0.7029+0.37
1334 zeta=lam21+(2.d0*lam22-lam21)*(v2v0*a0a2)**2
1335 & -2d0*lam22*v2v0*a0a2*cang2s
1341 elseif((lakon(nelem)(2:8).eq.
'REBRSI1').or.
1342 & (lakon(nelem)(2:8).eq.
'LPBRSI1'))
then 1353 if(nelem.eq.nelem1)
then 1354 zeta=0.4d0*(1-w1w0)**2
1357 elseif(nelem.eq.nelem2)
then 1359 dh0=dsqrt(a0*4d0/pi)
1360 if(dh0.eq.0.d0)
then 1361 dh0=dsqrt(4d0*a0/pi)
1363 dh2=dsqrt(a2*4d0/pi)
1364 if(dh2.eq.0.d0)
then 1365 dh2=dsqrt(4d0*a2/pi)
1369 if(alpha2.le.60.or.hq.le.2.d0/3.d0)
then 1370 zeta=0.95d0*((w2w0-2d0*dcos(alpha2*pi/180))
1374 z2d390=0.95d0*((w2w0-2d0*dcos(90.d0*pi/180))
1376 z1p090=0.95*(0.34d0+w2w0**2)
1377 z90=z2d390+(3*hq-2.d0)*(z1p090-z2d390)
1378 z60=0.95d0*((w2w0-2d0*dcos(60.d0*pi/180))
1380 zeta=z60+(alpha2/30.d0-2.d0)*(z90-z60)
1386 elseif((lakon(nelem)(2:8).eq.
'REBRSI2').or.
1387 & (lakon(nelem)(2:8).eq.
'LPBRSI2'))
then 1395 if(nelem.eq.nelem1)
then 1398 zeta=1.d0+0.3d0*w1w0**2
1400 elseif(nelem.eq.nelem2)
then 1403 zeta=1.d0+0.3d0*w2w0**2
1409 write(*,*)
'*WARNING in zeta_calc: in Element',nelem,
1410 &
'TYPE= ',lakon(nelem)(2:5)
1411 write(*,*)
' Zeta value negative is set to 0.01' #define max(a, b)
Definition: cascade.c:32
#define min(a, b)
Definition: cascade.c:31
static double * c1
Definition: mafillvcompmain.c:30
subroutine ts_calc(xflow, Tt, Pt, kappa, r, A, Ts, icase)
Definition: ts_calc.f:20
subroutine friction_coefficient(l, d, ks, reynolds, form_fact, lambda)
Definition: friction_coefficient.f:26
subroutine twodint(T, LSP, IART, XA, YA, ZA, NA, IEXP, IER)
Definition: twodint.f:84
subroutine cd_lichtarowicz(cd, cdu, reynolds, amod, bdh)
Definition: cd_lichtarowicz.f:27
static double * v1
Definition: mafillsmmain_se.c:40
subroutine onedint(XE, YE, NE, XA, YA, NA, IART, IEXP, IER)
Definition: onedint.f:67
static double * b1
Definition: mafillkmain.c:30