📄 global.bas
字号:
Attribute VB_Name = "GLOBAL"
Public Const time_max = 500 '最大时间步
Public Const well_max = 600 '最大井数
Public Const wellname_max = 8 '最大井名字符数
Public Const wellelsename_max = 15 '最大井别名字符数
Public Const gridx_max = 100 '最大X网格数 ?
Public Const gridy_max = 100 '最大Y网格数 ?
Public Const layer_max = 20 '最大层数 46?
Public Const gridxyz_max = 60000 '最大网格数 ?
Public Const duannum_max = 45 '最大设置断层线数 ?
Public Const duanpoint_max = 50 '断层线设置最多点数
Public Const useless_layernum = gridx_max * gridy_max '每层最大无效网格数
Public Const staticnum_max = 20 '油层参数场数据参数最多个数
Public Const lsjsregion_max = 10 '最多离散计算数
Public Const rtype_max = 20 '最多岩石类型数
Public Const otype_max = 2 '最多油类型数
Public Const nreg_max = 5 '最多分区数
Public Const sat_max = 35 '最多相渗表点个数
Public Const pvt_max = 40 '最多PVT表点个数
Public Const txyz_max = 500 'TX、TY、TZ最多修正个数
Public Const grnum_max = 8 '绘制曲线总数
Public Const grpoint_max = 250 '曲线最多点数
Public Const well_color1 = &HFFFFC0 '不分类型
Public Const well_color2 = &HFF& '生产井
Public Const well_color3 = &HFF0000 '注入井
Public Const well_color4 = &HFFFFFF '关井
Public Const kriging_MAXSAM = 120 'maximum number of data points to use in one kriging system
Public Const kriging_MAXDIS = 64 'maximum number of discretization points per block
Public Const kriging_MAXNST = 4 'maximum number of nested structures
Public Const history_cumwell_num = 5
Type owf '字段个数:42 记录长度:237
JH As String * 13 '1井号 C 13 0
DYMC As String * 2 '2 单元名称 C 2 0
CYFS As String * 1 '3 生产方式(C/P) C 1 0
SCSJ As String * 5 '4 生产时间 N 5 0
BJ1 As String * 3 '5 泵径1 N 3 0
BGSD As String * 6 '6 泵挂深度 N 6 1
BLB As String * 1 '7 泵的类别 C 1 0
BJ2 As String * 3 '8 泵径2 N 3 0
cc As String * 4 '9 冲程/油嘴 N 4 1
CC1 As String * 6 '10 冲次/油压(MPa) N 6 2
ty As String * 6 '11 套压(MPa) N 6 2
YCYL As String * 6 '12 月产油 N 6 0
YCQL As String * 7 '13 月产气(百方) N 7 0
YCSL As String * 6 '14 月产水 N 6 0
NCYL As String * 7 '15 年产油 N 7 0
NCQL As String * 8 '16 年产气(百方) N 8 0
NCSL As String * 7 '17 年产水 N 7 0
LJCYL As String * 8 '18 累积产油 N 8 0
LJCQL As String * 9 '19 累积产气(百方) N 9 0
LJCSL As String * 8 '20 累积产水 N 8 0
BZFDL As String * 1 '21 标识符(D/L) C 1 0
DYM As String * 7 '22 动液面/流压(MPa) N 7 2
BZFJP As String * 1 '23 标识符(J/P) C 1 0
JYM As String * 7 '24 静液面/静压(MPa) N 7 2
YYBZ As String * 6 '25 原油比重(吨/方) N 6 3
DMND As String * 6 '26 地面粘度(mPa.s) N 6 0
SKHD As String * 7 '27 水总矿化度(ppm) N 7 0
SSX As String * 1 '28 地下水水型 C 1 0
DCWU As String * 4 '29 层位顶 C 4 0
DCWD As String * 4 '30 层位底 C 4 0
YXHD As String * 5 '31 有效厚度 N 5 1
ZBSD As String * 6 '32 油层中深 N 6 1
BY As String * 7 '33 补油(吨) N 7 0
BQ As String * 8 '34 补气(百方) N 8 0
bs As String * 7 '35 补水(方) N 7 0
JLBZF As String * 4 '36 井类标识符 C 4 0
BZ As String * 3 '37 备注 C 3 0
SCNY As String * 4 '38 生产年月 C 4 0
JLJCY As String * 8 '39 井累产油 N 8 0
JLJCQ As String * 9 '40 井累产气 N 9 0
JLJCS As String * 8 '41 井累产水 N 8 0
JLJZS As String * 8 '42 井累注水 N 8 0
End Type
Type WWF '字段个数:72 记录长度:338
JH As String * 13 '1井号
DYMC As String * 2 '2 单元名称
ZSFS As String * 1 '3 注水方式
ZSSJ As String * 5 '4 注水时间(DDhh)
DCWU As String * 4
DCWD As String * 4
SCHD As String * 5
RPZSL As String * 4
BYL As String * 6
TYL As String * 6
YYL As String * 6
YZSL As String * 6
NZSL As String * 7
LJZSL As String * 8
BZSL As String * 7
JBBZF As String * 4
D1CDU As String * 4
D1CDD As String * 4
D1CDSCHD As String * 4
D1CDXZ As String * 1
D1CDSZ1 As String * 4
D1CDSZ2 As String * 4
D1CDRPSL As String * 3
D1CDYZSL As String * 5
D1CDNZSL As String * 6
D1CDLZSL As String * 7
D2CDU As String * 4
D2CDD As String * 4
D2CDSCHD As String * 4
D2CDXZ As String * 1
D2CDSZ1 As String * 4
D2CDSZ2 As String * 4
D2CDRPSL As String * 3
D2CDYZSL As String * 5
D2CDNZSL As String * 6
D2CDLZSL As String * 7
D3CDU As String * 4
D3CDD As String * 4
D3CDSCHD As String * 4
D3CDXZ As String * 1
D3CDSZ1 As String * 4
D3CDSZ2 As String * 4
D3CDRPSL As String * 3
D3CDYZSL As String * 5
D3CDNZSL As String * 6
D3CDLZSL As String * 7
D4CDU As String * 4
D4CDD As String * 4
D4CDSCHD As String * 4
D4CDXZ As String * 1
D4CDSZ1 As String * 4
D4CDSZ2 As String * 4
D4CDRPSL As String * 3
D4CDYZSL As String * 5
D4CDNZSL As String * 6
D4CDLZSL As String * 7
D5CDU As String * 4
D5CDD As String * 4
D5CDSCHD As String * 4
D5CDXZ As String * 1
D5CDSZ1 As String * 4
D5CDSZ2 As String * 4
D5CDRPSL As String * 3
D5CDYZSL As String * 5
D5CDNZSL As String * 6
D5CDLZSL As String * 7
BZ As String * 3
SCNY As String * 4
JLJCY As String * 8
JLJCQ As String * 9
JLJCS As String * 8
JLJZS As String * 8
End Type
Global maindrive$ 'easysim所在目录
Global formbl_x As Single, formbl_y As Single
Global loadtab_bz, okcancel_bz, mainload_bz As Integer '调用表格窗体标志
'----------- draw_line ---------------
Global yaxis_num As Integer
Global px1, py1, px2, py2 As Single
Global xaxis_type, xaxis_visible, TRborder_visible As Integer
Global xaxis_min, xaxis_max, xaxis_interval, twoyaxis_interval As Single
Global title_name$, xaxis_name$, xaxis_format$
Global title_fontsize, axis_fontsize, axisname_fontsize, grnote_fontsize As Single
Global yaxis_grnum(), yaxis_type() As Integer
Global yaxis_min(), yaxis_max(), yaxis_interval() As Single
Global yaxis_name$(), yaxis_format$()
Global grpoint(), gr_type(), grnote_visible(), grnote_LR() As Integer
Global grnote_name$()
Global Lstyle(), Lwidth(), Pstyle(), Pwidth() As Integer
Global Lcolor(), Pcolor() As Single
Global grdatx(), grdaty() As Single
Global grdatx_str$()
Global objBackColor
'----------- well.frm ---------------
Global FRAC_mod As Integer '-1为双孔介质
Global qkname$, oilfield_bz$, start_time$, end_time$, rem1$, rem2$, rem3$
Global caldays, interval_time As Integer '每月计算天数,时间间隔
Global reserves, vpor As Single '地质储量,孔隙体积
Global wellx(well_max), welly(well_max), wellname$(well_max) '井的X,Y距离,井名
Global wellname_other$(well_max, 2) '井别名
Global wellnum As Integer '井数
Global gridx As Single '油藏长度
Global gridy As Single '油藏宽度
Global layernum As Integer '油藏层数
Global griddx(gridx_max + 1), griddy(gridy_max + 1) 'X,Y各网格块尺寸
Global griddxnum As Integer 'X方向网格数
Global griddynum As Integer 'Y方向网格数
Global duannum As Integer '断层线数目
Global duanpointnum(duannum_max) As Integer '各断层线断点数
Global duanx(duannum_max, duanpoint_max), duany(duannum_max, duanpoint_max) '各断层线断点距离
Global duanlayer(duannum_max, layer_max) As Integer '各断层线层位判断:-1:yes,0:no
Global duancor(duannum_max) As Integer '各断层线颜色
Global duan_color(duannum_max)
Global uselessgridnum(), equbz As Integer '无效网格数目
Global uselessgridx(), uselessgridy() '无效网格所在网格号
Global bkx1, bkx2, bky1, bky2 As Integer '网格绘制范围
Global xmidpoint, ymidpoint, diffdx, diffdy As Integer '用于绘制网格
'----------- static.frm ----------
Global static_num As Integer
Global static_lsnum As Integer '离散点数
Global static_lsdata() As Single '离散点值:点数,参数(井号、X坐标、Y坐标、HTOP、DZ1、DZ2、…、DZNET1、…)
Global griddata_static_condition(staticnum_max) As Integer '参数场网格值赋值状况:0:不赋值;1:所有层一个值;2:一层一个值;3:DZ倍数;4:KX倍数;5:一个网格一个值
Global static_5_condition() As Integer '情况5网格值赋值状况:0:不赋值;1:一个值;2:部分赋值;3:完全赋值
Global griddata_one(staticnum_max) As Single '网格值(1)
Global griddata_layer() As Single '网格值(2):参数(HTOP、DZ1、DZ2、…、DZNET1、…)
Global griddata_dzmult As Single '网格值(3)
Global griddata_kxmult(4) As Single '网格值(4)
Global griddata_static() As Single '网格值(5):X,Y,参数(HTOP、DZ1、DZ2、…、DZNET1、…)
Global t_modifynum(10) As Integer
'TX、TY、TZ、TXF、TYF、TZF、TXMAEX、TYMAEX、TZMAEX、TCMAEX修正点数
Global t_xyz(1 To 10, 1 To txyz_max, 1 To 7) As Integer 'TX、TY、TZ修正XYZ坐标:(TX、TY、TZ),点数,坐标(X1、X2、Y1、Y2、Z1、Z2)
'运算符:1+;2-;3×4÷5=
Global t_value(1 To 10, 1 To txyz_max) As Single 'TX、TY、TZ修正值:(TX、TY、TZ),点数
Global oilregion() ' As Single '油类型分区:X,Y,层位
Global rockregion() 'As Integer '岩石类型分区:X,Y,层位
Global lsjsregion() 'As Integer '离散计算分区:X,Y,层位
Global printregion() 'As Integer '打印摘要分区:X,Y,层位
Global lsjsregion_bz As Integer '离散计算分区标志:0,only one, other:>1
Global oname$(staticnum_max), unitformat$(staticnum_max) '静态场参数名、参数输出格式
Global current_lsd, lsnum_max As Integer '目前设置或修改离散点、最多离散点点数
Global static_selcount, layer_selcount As Integer '选中离散计算数目
Global static_sel(staticnum_max), layer_sel(layer_max) As Integer '用于选中离散计算
Global add2equ_bz, cur_layer, cur_static As Integer '1+;2-;3×4÷5=
Global modify_value
Global layer_data(layer_max) As Single
Global lsjs_x(), lsjs_y(), lsjs_data() As Single '用于离散计算
Global lsjs_method As Integer '离散计算方法
'-------- file ------------
Global mod_filename$, analysis_filename$, analysis_filename2$, mademod_filename$, newfilename$, fenmod_filename$ '确定模型、分析、建立模型文件名
Global nnstep As Integer, fenfile_newbz As Integer
Global rtype_num, api_num, prreg_num As Integer
Global rtype_val(), api_val(), prreg_val()
Global zone_data() As Integer '区域块设置信息
Global krselnum As Integer
Global krsel$(1 To rtype_max)
Global equalini_bz As Integer '平衡初始化标志 -1/0:平衡/非平衡
'-------- dxq ------------
Global forplot_x1, forplot_x2, forplot_y1, forplot_y2 As Integer '用于绘制等值线(区)坐标范围
Global well_condition(well_max) As Integer '用于绘制等值线(区)井状态:0不显示;1不分类型显示;2生产井;3注入井;4关井
Global red(256), green(256), blue(256) As Integer
Global nodevalues() As Single
Global useless_zone() As Integer
Global useless_zone_num As Integer
Global useless_use() As Integer
Global uscor
Global jmq_zone() As Integer
Global jmq_zone_num As Integer
Global jmq_use() As Integer
Global jmq_pointnum() As Integer
Global jmq_pointx() As Integer
Global jmq_pointy() As Integer
Global drawpm_mode As Integer
'-------- history ------------
Global matchtime_num, match_day() As Integer
Global match_ym$()
Global zsxs_pro, zsxs_prw, zsxs_prg, zsxs_inj As Single
Global oil_md, oil_bo As Single
Global zsxs_singlewell(), cum_well() As Single
Global day_js() As Single '日产量 1:油,t;2:水,方;3:注水,方;4:气,方
'-------- pressure ------------
Global pressure_data() As Single
'-------- onewell ------------
Global kh_value() As Single
Global sk_time_num As Integer
Global sk_tnum(), sk_well_num() As Integer
Global sk_jh() As Integer
Global sk_welcond$(), staok_name$
'-------- other ------------
Global trstd, stdcon(2), inics(7), resol(4) As Single
'-------- pvt ------------
Global PE_W(1 To 4), COMPR_M, COMPR_F, MD_G, PE_O(1 To 8) As Single
Global gas_pvt(1 To pvt_max, 1 To 3), oil_pvt(1 To 2, 1 To pvt_max, 1 To 4) As Single
Global pvt_bz As Integer '1:WO;2:WO2;3:BLK;4:BLK2
Global gaspvt_frt$(3), oilpvt_frt$(4)
Global gaspvt_num, oilpvt_num(2) As Integer
'-------- krpc ------------
Global FRAC_kr As Integer
Global krow_m(1 To sat_max, 1 To 5), krog_m(1 To sat_max, 1 To 5) As Single
Global krow_f(1 To sat_max, 1 To 5), krog_f(1 To sat_max, 1 To 5) As Single
Global end_point(1 To 4, 1 To 9) As Single
Global kr_frt$(5)
Global krownum_m, krognum_m As Integer
Global krownum_f, krognum_f As Integer
'-------- analysis file ------------
Global nreg_fx As Integer '分区数
Global ifracbz As Integer '0/1 单孔/双孔
Global day_js_fx() As Single '日产量 1:油,t;2:水,方;3:注水,方;4:气,方
Global pressure_data_fx() As Single
Global oil_md_fx, oil_bo_fx As Single
Global clvar_sim_reg(0 To 2, 1 To 6, 0 To nreg_max) As Double
Rem 计算储量等clvar_sim_reg(i,j,k)
Rem i:0-全区;1-基质;2-裂缝
Rem j:1-原始水量,方;2-原始油量,方;3-原始气量,方;
Rem 4-原始自由气量,方;5-压力,MPa;6-孔隙体积,方。
Rem k: 分区号,0-合计。
Global minmax(4, 2) As Single 'P,SW,SG,SO min-max
Global changvor() As Single
Global pslayer() As Single '(1 To 2, 1 To matchtime_num, 0 To layernum) p,so
Global vorlayer() As Single '基质单层孔隙体积
Global cal_max(6) As Single 'Qp,Qi,Cump,Cumi,fw,Pwf
Global cal_max_g(4) As Single 'Qpg,Qig,Cumpg,Cumig
Global changvor_frac() As Single
' his_analysis
Global pwell_num() As Integer, iwell_num() As Integer
Global pxzb_12(1 To 2), pyzb_12(1 To 5, 1 To 2) As Single
Global hisdata2_cal() As Single
Global drawline_bz_com As Integer
Global hmid_res() As Single
Global dznet_res() As Single
Global hmid_js(), dznet_js() As Single
Global drawpm_top, drawpm_bottom As Single
'-------- md predict-file ------------
Global wellnum_pre As Integer '预测井数
Global end_time_pre$, rem1_pre$, rem2_pre$
Global interval_time_pre As Integer '预测时间间隔
Global predicttime_num, predict_day() As Integer
Global predict_ym$()
Global dayjsnum_pre As Integer
Global day_pre() As Integer, day_js_pre() As Single '时间,日产量 1:液,方;2:注水,方
Global sk_timenum_pre As Integer
Global sk_kh() As Single
'-------- md new predict-file ------------
Global modfile_new$, pvtfile_new$, stafile_new$, othfile_new$
Global krfilenum_new As Integer
Global krfile_new$(1 To rtype_max)
'-------- print ------------
Global print_title$
Global print_bz As Integer
'-------- scan_pic ------------
Global picture_name$
Global blc_setbz As Integer '1:设置(未设置),0:删除(已设置)
Global ml_setbz As Integer '1:设置(未设置),0:删除(已设置)
Global blc_zbx(2), blc_zby(2) '比例尺两点坐标
Global blc_bl '比例尺比例
Global ml_zbx(4), ml_zby(4) '模拟区域四点坐标
Global image_xa, image_xb, image_ya, image_yb 'image1坐标
' xa xb
' | |
'----------- ya
' |image1|
'----------- yb
' | |
Function outc$(innum, formt$)
Static ii
If Abs(innum) <= 0.000000001 And InStr(formt$, ".") = 0 Then
outc$ = Space(Len(formt$) - 1) + "0"
Else
ii = Len(formt$) - Len(Format$(innum, formt$))
If ii <= 0 Then ii = 1
outc$ = Space(ii) + Format$(innum, formt$)
End If
End Function
Function outc2$(inch$, num)
Static ii
If Len(inch$) >= num Then
outc2$ = Left$(inch$, num)
Else
ii = num - Len(inch$)
If ii <= 0 Then ii = 1
outc2$ = inch$ + Space(ii)
End If
End Function
Function plotx(resx)
plotx = bkx1 + 12 + ((bkx2 - 7) - (bkx1 + 12)) * resx / gridx
End Function
Function ploty(resy)
ploty = bky1 + 13 + ((bky2 - 8) - (bky1 + 13)) * resy / gridy
End Function
Function fx_plotx(resx)
fx_plotx = bkx1 + 5 + ((bkx2 - 5) - (bkx1 + 5)) * resx / gridx
End Function
Function fx_ploty(resy)
fx_ploty = bky1 + 5 + ((bky2 - 5) - (bky1 + 5)) * resy / gridy
End Function
Function draw_plotx(resx)
draw_plotx = forplot_x1 + (forplot_x2 - forplot_x1) * resx / gridx
End Function
Function draw_ploty(resy)
draw_ploty = forplot_y1 + (forplot_y2 - forplot_y1) * resy / gridy
End Function
Function resx(plotx)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -