📄 global.bas
字号:
Next i
End If
'
Print #1, "井位数据"
Print #1, wellnum
If wellnum >= 1 Then
For i = 1 To wellnum
Print #1, outc$(wellx(i) / formbl_x, "####0.00"); outc$(welly(i) / formbl_y, "####0.00"); " "; outc2$(UCase$(Trim$(wellname$(i))), wellname_max)
Next i
End If
'
Print #1, "断层线数据"
Print #1, duannum
If duannum >= 1 Then
For i = 1 To duannum
Print #1, duanpointnum(i), duancor(i)
For j = 1 To duanpointnum(i)
Print #1, outc$(duanx(i, j) / formbl_x, "####0.00"); outc$(duany(i, j) / formbl_y, "####0.00")
Next j
Next i
End If
Close #1
End Sub
'----------------------------------open-save sta -------------------------------------
Public Sub openfile_sta(filename$)
Open filename$ For Input As #1
' 离散点
Input #1, A$
Input #1, static_lsnum
If static_lsnum >= 1 Then
For i = 1 To static_lsnum
'序号,井号,X坐标,Y坐标,HTOP
Input #1, ii, static_lsdata(i, 1), static_lsdata(i, 2), static_lsdata(i, 3), static_lsdata(i, 4)
'DZ1,…
For j = 2 To static_num
For k = 1 To layernum
Input #1, static_lsdata(i, static_lsdim(k, j))
Next k
Next j
Next i
End If
' 网格值
Input #1, A$
For i = 1 To static_num
Input #1, A$
Input #1, griddata_static_condition(i)
Select Case griddata_static_condition(i)
Case 0:
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, i) - 3) = -99
Next k
Next j
Next l
Case 1:
Input #1, griddata_one(i)
If i = 1 Then
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, 1) = griddata_one(i)
Next k
Next j
Else
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, i) - 3) = griddata_one(i)
Next k
Next j
Next l
End If
Case 2:
For l = 1 To layernum
Input #1, griddata_layer(static_lsdim(l, i) - 3)
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, i) - 3) = griddata_layer(static_lsdim(l, i) - 3)
Next k
Next j
Next l
Case 3:
Input #1, griddata_dzmult
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, 3) - 3) = griddata_dzmult * griddata_static(k, j, static_lsdim(l, 2) - 3)
Next k
Next j
Next l
Case 4:
If i = 5 Then 'KY
Input #1, griddata_kxmult(1)
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, 5) - 3) = griddata_kxmult(1) * griddata_static(k, j, static_lsdim(l, 4) - 3)
Next k
Next j
Next l
End If
If i = 6 Then 'KZ
Input #1, griddata_kxmult(2)
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, 6) - 3) = griddata_kxmult(2) * griddata_static(k, j, static_lsdim(l, 4) - 3)
Next k
Next j
Next l
End If
If i = 12 Then 'KYF
Input #1, griddata_kxmult(3)
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, 12) - 3) = griddata_kxmult(3) * griddata_static(k, j, static_lsdim(l, 11) - 3)
Next k
Next j
Next l
End If
If i = 13 Then 'KZF
Input #1, griddata_kxmult(4)
For l = 1 To layernum
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, 13) - 3) = griddata_kxmult(4) * griddata_static(k, j, static_lsdim(l, 11) - 3)
Next k
Next j
Next l
End If
Case 5:
If i = 1 Then
Input #1, static_5_condition(1)
For j = 1 To griddynum
For k = 1 To griddxnum
Input #1, griddata_static(k, j, 1)
Next k
Next j
Else
For l = 1 To layernum
Input #1, static_5_condition(static_lsdim(l, i) - 3)
Select Case static_5_condition(static_lsdim(l, i) - 3)
Case 0:
Case 1:
Input #1, inputdata
For j = 1 To griddynum
For k = 1 To griddxnum
griddata_static(k, j, static_lsdim(l, i) - 3) = inputdata
Next k
Next j
Case 2, 3:
For j = 1 To griddynum
For k = 1 To griddxnum
Input #1, griddata_static(k, j, static_lsdim(l, i) - 3)
Next k
Next j
End Select
Next l
End If
End Select
Next i
' TX、TY、TZ、TXF、TYF、TZF、TXMAEX、TYMAEX、TZMAEX、TCMAEX修正值
If FRAC_mod = -1 Then int_num = 10 Else int_num = 3
Input #1, A$
For i = 1 To int_num
Input #1, t_modifynum(i)
If t_modifynum(i) <> 0 Then
For j = 1 To t_modifynum(i)
For k = 1 To 7
Input #1, t_xyz(i, j, k)
Next k
Input #1, t_value(i, j)
Next j
End If
Next i
Call openfile_sta_fq(1, oilregion()) ' 油类型分区数据
Call openfile_sta_fq(2, rockregion()) ' 岩石类型分区数据
Call openfile_sta_fq(3, lsjsregion()) ' 离散计算分区数据
Call openfile_sta_fq(4, printregion()) ' 打印摘要分区数据
Close #1
End Sub
Public Sub savefile_sta(filename$)
Static printuse()
ReDim printuse(gridx_max)
Dim oname_pr$(10)
oname_pr$(1) = "HTOP": oname_pr$(2) = "DZ"
oname_pr$(3) = "DZNET": oname_pr$(4) = "KX"
oname_pr$(5) = "KY": oname_pr$(6) = "KZ"
oname_pr$(7) = "PHI": oname_pr$(8) = "P"
oname_pr$(9) = "SO"
Open filename$ For Output As #1
Print #1, "离散点"
Print #1, static_lsnum
If static_lsnum >= 1 Then
For i = 1 To static_lsnum
'序号,井号,X坐标,Y坐标,HTOP
Print #1, outc$(i, "###0"); outc$(static_lsdata(i, 1), "###0");
Print #1, outc$(static_lsdata(i, 2), "####0.00"); outc$(static_lsdata(i, 3), "####0.00");
Print #1, outc$(static_lsdata(i, 4), "##" & unitformat$(1))
'DZ1,…
For j = 2 To static_num
For k = 1 To layernum
printuse(k) = static_lsdata(i, static_lsdim(k, j))
Next k
Call printgrid(layernum, printuse(), "##" & unitformat$(j))
Next j
Next i
End If
Print #1, "网格值"
For i = 1 To static_num
If griddata_static_condition(i) = 5 Then
If i = 1 Then
If static_5_condition(1) = 0 Then griddata_static_condition(i) = 0
If static_5_condition(1) = 1 Then
griddata_static_condition(i) = 1
griddata_one(i) = griddata_static(1, 1, 1)
End If
Else
ifjs1 = True: ifjs2 = True
For j = 1 To layernum
ifjs1 = ifjs1 And static_5_condition(static_lsdim(j, i) - 3) = 0
ifjs2 = ifjs2 And static_5_condition(static_lsdim(j, i) - 3) = 1
Next j
If ifjs1 Then griddata_static_condition(i) = 0
If ifjs2 Then
If layernum > 1 Then
tempdata = griddata_static(1, 1, static_lsdim(1, i) - 3)
For j = 2 To layernum
If tempdata <> griddata_static(1, 1, static_lsdim(j, i) - 3) Then
griddata_static_condition(i) = 2
For k = 1 To layernum
griddata_layer(static_lsdim(k, i) - 3) = griddata_static(1, 1, static_lsdim(k, i) - 3)
Next k
GoTo 7
End If
Next j
End If
griddata_static_condition(i) = 1
griddata_one(i) = griddata_static(1, 1, static_lsdim(1, i) - 3)
End If
End If
End If
7 Print #1, oname$(i)
Print #1, outc$(griddata_static_condition(i), "#0")
Select Case griddata_static_condition(i)
Case 0:
Case 1:
Print #1, outc$(griddata_one(i), "##" & unitformat$(i))
Case 2:
For k = 1 To layernum
printuse(k) = griddata_layer(static_lsdim(k, i) - 3)
Next k
Call printgrid(layernum, printuse(), "##" & unitformat$(i))
Case 3:
Print #1, outc$(griddata_dzmult, "##0.00")
Case 4:
If i = 5 Then Print #1, outc$(griddata_kxmult(1), "##0.000")
If i = 6 Then Print #1, outc$(griddata_kxmult(2), "##0.000")
If i = 12 Then Print #1, outc$(griddata_kxmult(3), "##0.000")
If i = 13 Then Print #1, outc$(griddata_kxmult(4), "##0.000")
Case 5:
If i = 1 Then
Print #1, outc$(static_5_condition(1), "#0")
For j = 1 To griddynum
For k = 1 To griddxnum
printuse(k) = griddata_static(k, j, 1)
Next k
Call printgrid(griddxnum, printuse(), "##" & unitformat$(1))
Next j
Else
For l = 1 To layernum
Print #1, outc$(static_5_condition(static_lsdim(l, i) - 3), "#0")
Select Case static_5_condition(static_lsdim(l, i) - 3)
Case 0:
Case 1:
Print #1, outc$(griddata_static(1, 1, static_lsdim(l, i) - 3), "##" & unitformat$(i))
Case 2, 3:
For j = 1 To griddynum
For k = 1 To griddxnum
printuse(k) = griddata_static(k, j, static_lsdim(l, i) - 3)
Next k
Call printgrid(griddxnum, printuse(), "##" & unitformat$(i))
Next j
End Select
Next l
End If
End Select
Next i
If FRAC_mod = -1 Then
prt_num = 10
Print #1, "TX、TY、TZ、TXF、TYF、TZF、TXMAEX、TYMAEX、TZMAEX、TCMAEX修正值"
Else
prt_num = 3
Print #1, "TX、TY、TZ修正值"
End If
For i = 1 To prt_num
Print #1, t_modifynum(i)
If t_modifynum(i) <> 0 Then
For j = 1 To t_modifynum(i)
For k = 1 To 7
Print #1, outc$(t_xyz(i, j, k), "###0");
Next k
Print #1, outc$(t_value(i, j), "###0.000")
Next j
End If
Next i
Call savefile_sta_fq(1, oilregion()) '油类型分区数据
Call savefile_sta_fq(2, rockregion()) '岩石类型分区数据
Call savefile_sta_fq(3, lsjsregion()) '离散计算分区数据
Call savefile_sta_fq(4, printregion()) '打印摘要分区数据
Close #1
'------------------------------------------------------
'save surf files
bbb = 0
'bbb = -1
If bbb = 0 Then Exit Sub
For kkk = 1 To 2
pathsurf$ = "d:\hj\纯梁\surf\"
Open pathsurf$ + "staK" + Trim$(Str$(kkk)) + ".txt" For Output As #1
Print #1, "X坐标,Y坐标,HTOP";
For j = 2 To static_num - 1
For k = 1 To layernum
Print #1, ","; oname_pr$(j) + Trim$(Str$(k));
Next k
Next j
Print #1, ",DZsum,DZNETsum,井号"
For i = 1 To static_lsnum
'X坐标,Y坐标,HTOP
Call wellpoint(static_lsdata(i, 2), static_lsdata(i, 3), xp, yp)
If lsjsregion(xp, yp, 1) = kkk Then 'equal lsjsregion number.
Print #1, Trim$(Str$(static_lsdata(i, 2))); ",";
yval = gridy - static_lsdata(i, 3)
Print #1, Trim$(Str$(yval)); ",";
If Abs(static_lsdata(i, 4) + 99) > 0.0001 Then
Print #1, Trim$(Str$(static_lsdata(i, 4))); ",";
Else
Print #1, " ,";
End If
'DZ1,…
For j = 2 To static_num - 2
xshu_val = 1
If j = 4 Then xshu_val = 1000
For k = 1 To layernum
If Abs(static_lsdata(i, static_lsdim(k, j)) + 99) > 0.0001 Then
Print #1, Trim$(Str$(static_lsdata(i, static_lsdim(k, j)) * xshu_val)); ",";
Else
Print #1, " ,";
End If
Next k
Next j
For k = 1 To layernum
if1 = Abs(static_lsdata(i, static_lsdim(k, static_num - 1)) + 99) > 0.0001
if2 = Abs(static_lsdata(i, static_lsdim(k, static_num)) + 99) > 0.0001
If if1 And if2 Then
sop = 1 - static_lsdata(i, static_lsdim(k, static_num - 1)) - static_lsdata(i, static_lsdim(k, static_num))
Print #1, Trim$(Str$(sop)); ",";
Else
Print #1, " ,";
End If
Next k
For j = 2 To 3
prbz = -1
sumdz = 0#
For k = 1 To layernum
If Abs(static_lsdata(i, static_lsdim(k, j)) + 99) <= 0.0001 Then prbz = 0
sumdz = sumdz + static_lsdata(i, static_lsdim(k, j))
Next k
If prbz = -1 Then
Print #1, Trim$(Str$(sumdz)); ",";
Else
Print #1, " ,";
End If
Next j
Print #1, Trim$(Str$(static_lsdata(i, 1)))
End If
Next i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -