📄 exm_6.bas
字号:
Attribute VB_Name = "Exm_6"
Option Explicit
Public AMU As Double
Public DEN As Double, WBAR As Double, COND As Double, CP As Double, RHOCP As Double
Public DPDZ As Double, DTBDZ As Double
Public ASUM#, TSUM#, WSUM#, TW#, AR#, WR#, TB#, DH#, RE#, FRE#, QW#, ANU#, RHOT#
Dim j As Long, i As Long
Dim THEAT#, DTDZ#, PI#, WP#, TBULK#, HTP#, HTC#, TIN#, VOUT#, VIN#, PR#, AMUP#, TREF#, RHOREF#
'*****************************************************************
'*
'*----------------- EXAMPLE SIX -----------------------------
'*
'*****************************************************************
Sub GRID()
LAST = 60
For i = 1 To 4
LSolve(i) = True
LPrint(i) = True
Next
LPrint(11) = True
LPrint(12) = True
Title(1) = ".VEL U."
Title(2) = ".VEL V."
Title(3) = ".STR FN."
Title(4) = ". TEMP ."
Title(11) = "PRESSURE"
Title(12) = "DENSITY"
RELAX(1) = 0.5
RELAX(2) = 0.5
RELAX(11) = 0.8
XL = 0.5
YL = 2#
L1 = 7
M1 = 12
Call UGRID
End Sub
Sub START()
TIN = 500
TW = 300#
VIN = 100#
VOUT = VIN * XCV(L2) / X(L1) * TW / TIN
For j = 1 To M1
For i = 1 To L1
F(i, j, 1) = 0
F(i, j, 2) = VOUT
F(i, 2, 2) = 0
F(1, j, 2) = 0#
F(i, j, 4) = TW
Next
Next
F(L2, 2, 2) = VIN
F(L2, 1, 4) = TIN
PR = 0.7
AMU = 1#
AMUP = AMU / PR
TREF = 300#
RHOREF = 1#
RHOT = RHOREF * TREF
End Sub
Sub DENSE()
For j = 1 To M1
For i = 1 To L1
RHO(i, j) = RHOT / F(i, j, 4)
Next
Next
End Sub
Sub BOUND()
Dim FLOWIN#, FL#, FACTOR#
If (ITER = 0) Then
FLOWIN = RHO(L2, 1) * F(L2, 2, 2) * XCV(L2)
End If
FL = 0#
For i = 2 To L2
FL = FL + RHO(i, M1) * F(i, M2, 2) * XCV(i)
Next
FACTOR = FLOWIN / FL
For i = 2 To L2
F(i, M1, 2) = F(i, M2, 2) * FACTOR
F(i, M1, 4) = F(i, M2, 4)
Next i
End Sub
Sub OUTPUT()
If (ITER = 0) Then
'WRITE(8,401)
'401 FORMAT(1X,' ITER',7X,'SMAX',11X,'SSUM',10X,'V(4,7)',
' & 9X,'T(4,7)')
Print #1,
Print #1, " ITER"; Space(7); "SMAX"; Space(11); "SSUM"; Space(10); "V(4,7)"; Space(10); "T(4,7)"
End If
'400 WRITE(8,403) ITER,SMAX,SSUM,V(4,7),T(4,7)
'403 FORMAT(1X,I6,1P4E15.3)
Print #1,
Print #1, ITER; Space(6); Format(SMAX, "#.000E+00"); Space(6); _
Format(SSUM, "#.000E+00"); Space(6); Format(F(4, 7, 2), "#.000E+00"); _
Space(6); Format(F(4, 7, 4), "#.000E+00")
If (ITER = LAST) Then Call ToPrint
End Sub
Sub GAMSOR()
For j = 1 To M1
For i = 1 To L1
GAM(i, j) = AMU
If (NF = 4) Then GAM(i, j) = AMUP
If (NF <> 1) Then GAM(L1, j) = 0#
GAM(i, M1) = 0#
Next i
Next j
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -