module1.bas
来自「VB版本_SIMPLE算法和11各个算例」· BAS 代码 · 共 118 行
BAS
118 行
Attribute VB_Name = "Exm_4"
'*****************************************************************
'*
'*----------------- EXAMPLE FOUR ----------------------------
'*
'* -=中国石油大学=-
'******************************************************************
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#
Dim j As Long, i As Long
Dim THEAT#, DTDZ#, PI#, WP#, TBULK#, HTP#, HTC#
Sub GRID()
LSolve(4) = True
LPrint(4) = True
LPrint(5) = True
Title(4) = ".W/WBAR."
Title(5) = ".THETA."
NTIMES(4) = 4
NTIMES(5) = 4
LAST = 6
MODE = 3
PI = 3.14159
XL = 15# * PI / 180#
YL = 1#
R(1) = 1#
L1 = 7
M1 = 7
Call UGRID
End Sub
Sub START()
TW = 1#
For j = 1 To M1
For i = 1 To L1
F(i, j, 4) = 0#
F(i, j, 5) = TW
Next i
Next j
AMU = 1#
DPDZ = -2000#
RHOCP = 1#
COND = 1#
DTDZ = 100#
End Sub
Sub DENSE()
End Sub
Sub BOUND()
ASUM = 0#
WSUM = 0#
TSUM = 0#
For j = 2 To M2
For i = 2 To L2
If Not (i = 2# And j <= 4) Then
AR = YCVR(j) * XCV(i)
WSUM = WSUM + F(i, j, 4) * AR
TSUM = TSUM + AR * F(i, j, 4) * F(i, j, 5)
ASUM = ASUM + AR
End If
Next i
Next j
WBAR = WSUM / ASUM
WP = (R(1) + R(M1)) * XL + (1# + XCV(2)) * (RMN(5) - R(1))
DH = 4# * ASUM / WP
RE = RHOCON * WBAR * DH / AMU
FRE = -2# * DPDZ * DH / (RHOCON * WBAR ^ 2 + 1E-30) * RE
TBULK = TSUM / (WSUM + 1E-30)
HTP = WP - R(M1) * XL
HTC = RHOCP * WSUM * DTDZ / ((TW - TBULK + 1E-30) * HTP)
ANU = HTC * DH / COND
If (ITER < 3) Then Exit Sub
LSolve(5) = True
LSolve(4) = False
End Sub
Sub OUTPUT()
If (ITER = 0#) Then
Print #1,
Print #1, " ITER"; Space(8); "F.RE"; Space(8); "NU"
End If
' 400 WRITE(8,402) ITER,FRE,ANU
'402 FORMAT(1X,I6,1P2E20.4)
Print #1,
Print #1, Format(ITER, "0# "); Format(FRE, "0.###E+##"), Format(ANU, "0.###E+##")
If (ITER <> LAST) Then Exit Sub
For j = 1 To M1
For i = 1 To L1
F(i, j, 4) = F(i, j, 4) / WBAR
F(i, j, 5) = (F(i, j, 5) - TW) / (TBULK - TW + 1E-30)
Next i
Next j
Call ToPrint
End Sub
Sub GAMSOR()
For i = 1 To L1
For j = 1 To M1
GAM(i, j) = AMU
If (NF <> 5) Then GAM(i, j) = COND
GAM(1, j) = 0#
GAM(L1, j) = 0#
If (NF = 5) Then GAM(i, M1) = 0#
If (j <= 4) Then GAM(2, j) = 10000000000#
If (NF = 5 And j <= 4) Then GAM(2, j) = 10# * COND
Next j
Next i
For j = 2 To M2
For i = 2 To L2
CON(i, j) = -DPDZ
If (NF = 5) Then CON(i, j) = -DTDZ * F(i, j, 4) * RHOCP
Next i
Next j
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?