aboutsummaryrefslogtreecommitdiff
path: root/src/frplot.f
diff options
context:
space:
mode:
Diffstat (limited to 'src/frplot.f')
-rwxr-xr-xsrc/frplot.f72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/frplot.f b/src/frplot.f
new file mode 100755
index 0000000..3311bca
--- /dev/null
+++ b/src/frplot.f
@@ -0,0 +1,72 @@
+
+ SUBROUTINE FRPLOT(N,S,X,HK,TH,UE,VE,XTR,FREF,
+ & XOFF,XSF, YOFF,YSF, CHF)
+ DIMENSION S(N+1), X(N+1), HK(N+1), TH(N+1), UE(N+1), VE(N+1)
+C------------------------------------------------------------
+C Plots the amplitude A(x) for a specified number
+C of frequencies. The frequency values which are
+C used are set internally in the amplitude calculation
+C routine NTCALC, and displayed here.
+C
+C N number of laminar streamwise points i
+C (transition is in interval N...N+1)
+C S(i) streamwise arc length for integrating -a_i = d[ln(A)]/ds
+C X(i) plotting x coordinate
+C HK(i) kinematic shape parameter
+C TH(i) momentum thickness
+C UE(i) edge velocity
+C VE(i) edge kinematic viscosity
+C XTR transition x location, should be X(N) < XTR < X(N+1)
+C
+C FREF reference radian frequency (w/FREF is displayed)
+C
+C XOFF plotting offsets, scales... Xplot = (X-XOFF)*XSF
+C YOFF Yplot = (Y-YOFF)*YSF
+C XSF
+C YSF
+C
+C CHF character height
+C------------------------------------------------------------
+C
+C---- max number of streamwise points and frequencies
+ PARAMETER (IDIM=300,NFX=15)
+ccc PARAMETER (IDIM=300,NFX=50)
+C
+ DIMENSION FREQ(NFX), ANF(IDIM,NFX)
+C
+ IF(N+1 .GT. IDIM) STOP 'FRPLOT: Array overflow. Increase IDIM.'
+C
+C---- set number of frequencies plotted
+ NFR = NFX
+C
+C---- calculate wave amplitudes for each frequency
+ CALL NTCALC(IDIM,N+1, S,HK,TH,UE,VE,
+ & NFR,FREQ,ANF)
+C
+C---- plot amplitudes for all frequencies
+ X1 = X(N)
+ X2 = XTR
+ FRAC = (X2-X1)/(X(N+1)-X1)
+ DO 10 IFR=1, NFR
+C
+C------ plot A(x) up to the transition interval
+ CALL XYLINE(N,X,ANF(1,IFR),XOFF,XSF,YOFF,YSF,1)
+C
+C------ plot last bit to the transition location in the transition interval
+ Y1 = ANF(N,IFR)
+ Y2 = ANF(N,IFR) + FRAC*(ANF(N+1,IFR)-ANF(N,IFR))
+ CALL PLOT((X1-XOFF)*XSF,(Y1-YOFF)*YSF,3)
+ CALL PLOT((X2-XOFF)*XSF,(Y2-YOFF)*YSF,2)
+C
+C------ label the curve with its frequency if it grew to more than ANFMIN
+ ANFMIN = 0.5
+ IF(MAX(ANF(N,IFR),ANF(N+1,IFR)) .GT. ANFMIN) THEN
+ XNUM = (X2-XOFF)*XSF + 0.5*CHF
+ YNUM = (Y2-YOFF)*YSF - 0.5*CHF
+ CALL PLNUMB(XNUM,YNUM,CHF,FREQ(IFR)/FREF,0.0,2)
+ ENDIF
+C
+ 10 CONTINUE
+C
+ RETURN
+ END