|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: F T
Length: 3552 (0xde0) Types: TextFile Names: »F88345.f«
└─⟦db229ac7e⟧ Bits:30007240 EUUGD20: SSBA 1.2 / AFW Benchmarks └─⟦this⟧ »EUUGD20/AFUU-ssba1.21/ssba1.21E/doduc/F88345.f« └─⟦this⟧ »EUUGD20/AFUU-ssba1.21/ssba1.21F/doduc/F88345.f«
SUBROUTINE F88345(G,ALFB,ALFT,VG,VF,T,SIG,FLUXG,FLUXF,ALJ,VGJ, 1 P,Q,ICAS,GL1,GL2,IZW) IMPLICITDOUBLEPRECISION(A-H,O-Z) Z1(X)=(1.-X)*(ALFT-X)+X*(X-ALFB) Z2(X)=X*(ALFT-X)/VG-X*(X-ALFB)/VF RF=1./VF RG=1./VG GRAV=32.174 GC=32.174 A1=.67 A2=.47 B1=1./A1 B2=1./A2 N=0 NITM=15 IZW=0 VFDVG=VF/VG SIG=SIGMA(T) TCC=SIG*GC*GRAV*(RF-RG) TCC=VF*DSQRT(TCC) VBCR=1.53*DSQRT(TCC) ALO=.925*(VF/VG)**.239D+00 ALSU=1.-1.D-7 GL1=1.D+6 GL2=-1.D+6 IF(G.GE.0.)GOTO 800 ICAS=3 IZW=2 ALJ=ALFT GOTO 900 800 CONTINUE ICAS=1 IZW=1 ALJ=ALFB 900 CONTINUE VGJ=S00098(VBCR,ALO,ALJ) B=B1 IF(ALFB.GE.ALO)B=B2 GL1=((ALFB/ALO)**B)*RG*VBCR GL2=-RF*S00098(VBCR,ALO,ALFT) IF(ALFB.LT.1.D-7.OR.ALFT.GT.ALSU)GOTO 1010 IF(G.LT.GL1.AND.G.GT.GL2)GOTO 2000 1010 RHOB=ALJ*RG+(1.-ALJ)*RF VGJ=S00098(VBCR,ALO,ALJ) FLUXG=(G+RF*VGJ)*ALJ/RHOB FLUXF=(G*(1.-ALJ)-RG*VGJ*ALJ)/RHOB P=RG*ALJ/RHOB Q=RF*RG*VGJ*ALJ/RHOB IF(G.GE.0..AND.FLUXF.LT.0.)GOTO 1100 IF(G.LT.0..AND.FLUXG.GT.0.)GOTO 1200 RETURN 1100 CONTINUE IZW=0 ICAS=1 IF(G.GE.0.)GOTO 1105 GL2=-1.D+6 ICAS=3 1105 CONTINUE ALJ=1.D+00 FLUXG=G*VG FLUXF=0.D+00 P=1.D+00 Q=0.D+00 VGJ=0.D+00 RETURN 1200 CONTINUE IZW=0 GL1=1.D+6 ICAS=1 IF(G.GE.0.)GOTO 1205 ICAS=3 1205 CONTINUE ALJ=0.D+00 FLUXG=0.D+00 FLUXF=G*VF P=0.D+00 Q=0.D+00 VGJ=0.D+00 RETURN 2000 CONTINUE ICAS=2 IZW=3 N=1 ALFST=(RG*ALFT+RF*ALFB)/(RG+RF) ALBT=DABS(ALFT-ALFB) IF(ALBT.GE.1.D-3)GOTO 2100 ALJ=(ALFB+ALFT)/2.D+00 VGJ=S00098(VBCR,ALO,ALJ) IZW=4 GOTO 3000 2100 AL1=DMIN1(ALFB,ALFT) AL2=DMAX1(ALFB,ALFT) VG1=S00098(VBCR,ALO,AL1) VG2=S00098(VBCR,ALO,AL2) VGST=S00098(VBCR,ALO,ALFST) X=AL1 F1=(VG1*Z2(X)-G*Z1(X))/ALBT X=AL2 F2=(VG2*Z2(X)-G*Z1(X))/ALBT X=ALFST FST=(VGST*Z2(X)-G*Z1(X))/ALBT IF(DABS(FST).GT.1.D-04)GOTO 2200 ALJ=ALFST VGJ=VGST GOTO 3000 2200 IF(FST.GT.0.)GOTO 2300 AL2=ALFST F2=FST GOTO 2500 2300 AL1=ALFST F1=FST 2500 CONTINUE N=N+1 X=(AL1*F2-AL2*F1)/(F2-F1) VGJ=S00098(VBCR,ALO,X) IF((AL2-AL1).GE.1.D-7)GOTO 2510 ALJ=X GOTO 3000 2510 CONTINUE F=(VGJ*Z2(X)-G*Z1(X))/ALBT IF(DABS(F).GT.1.D-04)GOTO 2600 ALJ=X IF(DABS(F).LT.1.D-8)GOTO 3000 IF(F.GT.0.)GOTO 2520 AL2=X F2=F GOTO 2550 2520 AL1=X F1=F 2550 ALJ=(AL1*F2-AL2*F1)/(F2-F1) VGJ=S00098(VBCR,ALO,X) GOTO 3000 2600 IF(F.GT.0.)GOTO 2700 AL2=X F2=F GOTO 2800 2700 AL1=X F1=F 2800 IF(N.LT.NITM)GOTO 2500 ALJ=(AL1*F2-AL2*F1)/(F2-F1) VGJ=S00098(VBCR,ALO,X) 3000 RHOB=ALJ*RG+(1.-ALJ)*RF FLUXG=(G+RF*VGJ)*ALJ/RHOB FLUXF=(G*(1.-ALJ)-RG*VGJ*ALJ)/RHOB X=ALJ DZ2=-2.*X*(RG+RF)+ALFT*RG+ALFB*RF DZ1=4.*X-1.-ALFB-ALFT DJGG=X/RHOB A=A1 IF(X.GE.ALO)A=A2 EB=1./A-1.D+00 XVGJA=VBCR*(X/ALO)**EB*(-X+(1.-X)*(1.-A)/A)/ALO DJGAL=RF*(XVGJA+(G+RF*VGJ)/RHOB)/RHOB Z2VGJA=((ALFT-X)/VG+(ALFB-X)/VF)*XVGJA DALG=Z1(X)/(DZ2*VGJ+Z2VGJA-G*DZ1) P=RG*(DJGG+DJGAL*DALG) Q=RG*FLUXG-P*G RETURN END