发布网友 发布时间:2022-04-23 09:34
共1个回答
热心网友 时间:2023-10-05 08:45
1.程序功能
程序CHECAL具有以下功能:①全岩化学分析数据的检查和修正,包括检查H2O+、CO2的含量和分析总量,检查和修正Fe2O3/FeO*比值,干成分换算等;②CIPW标准矿物计算;③常用的40余种岩石化学参数计算。
2.方法原理
对全岩化学分析数据的检查和修正,程序中未设定具体的标准,可由用户自行选择H2O+、CO2的上限和分析总量的上、下限。Le Bas等(1986)以w(H2O+)<2%、w(CO2)<0.5%作为判断新鲜火山岩的主要标准,用户在实际应用中可以此作为参考。全岩化学分析的总量,应限定在99.00%~101.00%之间。对于Fe2O3/FeO*比值的检查和Fe2O3、FeO含量的修正,程序中提供了8种可供选择的方法(马鸿文,1988,未发表资料:Irvine et al.,1971;Hughes,1982;Le Maitre,1976)。若化学分析结果中的挥发分含量过高(一般>3%),则在进行CI'PW标准矿物和岩石化学参数计算前,应首先将其换算为干成分。
CIPW,际准矿物计算方案主要采用Holmes(1921)的算法。常用的岩石化学参数参考《岩浆岩岩石学》教材(邱家骧,1984)或其它岩石化学方面的参考教材或专著。
3.程序结构
结晶岩热力学软件
4.使用说明
(1)输入格式
程序运行过程中,按照屏幕提示,依次提供以下参数:
IFN 输入文件名
CO2 CO2的上限
H2O 2的上限
ITA 分析总量选择
Option Fe2O3/Fe*比值修正方法选择
Vfree 干成分换算选择
OFNl 输出文件名,保存CIPW标准矿物计算结果
OFN2 输出文件名,保存岩石化学参数计算结果
样品名称和氧化物原始分析结果由输入文件读入。
原始数据输入格式为:A6,15F6.2。
各变量排列顺序依次为:Sample(样品号)、SiO2、TiO2、Al2O3、Cr2O3、Fe2O3、FeO、MnO、MgO、CaO、Na2O、K2O、P2O5、CO2、H2O+、H2O-。
每次计算的样品个数不限。
(2)输出格式
原始数据的检查和修正结果输出到文件clboxd.dat中。若样品的CO2、H2O+或分析总量超过所设定的上、下限,则样品被自动剔除。
CIPW标准矿物计算结果以表格形式保存在输出文件中。CIPW标准矿物符号可参阅马鸿文(1993a)编著的《结晶岩热力学概论》附录三。除CIPW标准矿物含量外,输出结果中还包括分异指数(DI)、Di-Ab-An、An-Ab-Or、Q-Ab-Or三元系相图的端员组分含量、用于岩石化学分类命名的Q’-ANOR-F’参数(Streckeisen et al.,1979)及岩石的镁值(Mg#)。
常用岩石化学参数计算结果同样以表格形式保存在输出文件中。各参数的含义如下:
Totalk 总碱含量
IFels 长英指数
IAlk 碱质指数
IK 钾质指数
FeOt 全铁含量
Fe/Mg 铁镁比值
Cox 氧化率
IFe 铁质指数
IMg 镁质指数
SI 固结指数
ILars 拉森指数
Sigma 里特曼指数σ(Rittmann,1970)
Lgsgm 里特曼指数的对数lgσ
LgTau 戈梯尼指数对数lgτ
Lgsg25 Loffler指数的对数lgσ25(Loffler,1979)
F1,F2,F3 玄武岩构造环境判别函数(Pearce,1976)
Na-K-Ca 判别花岗岩成因的Na-K-Ca三角图(Raju et al.,1972)的端员组分含量
Fe-Alk-Mg FAM图解的端员组分含量
Fe-Mg-Al 判别玄武岩类构造环境的Fe*-MgO-Al2O3三角图(Pearce et al.,1977)的端员组分含量
Ti-Mn-P 判别玄武岩类构造环境的TiO2-MnO-P2O5三角图(Mullen,1983)的端员组分含量
Ti-K-P 判别玄武岩类构造环境的TiO2-K2O-P2O5三角图(Pearce et al.,1975)的端员组分含量
Ti-Al-K 判别玄武岩类构造环境的TiO2-Al2O3-K2O三角图(赵崇贺,19)的端员组分含量
Mg# 镁值
S/Iidx S/I指数(Griffiths et al.,1983)
(Al-NaK)-Ca-(Fe2+Mg) 区分花岗岩成因类型的(Al-Na-K)-Ca-(Fe2++Mg)三角图(Hine et al.,1978)的端员组分含量
R1,R2 火山岩化学分类命名的R1-R2参数(De La Roche et al.,1980)
上述CIPW标准矿物含量和常用岩石化学参数的计算结果,按照每10个样品以相同的列表形式,顺序输出到相应的文件中。
5.程序文本
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件
end if
****calculate total silica used and perform necessary desilications****
TSi=cnm(i,1)+cnm(i,1 2)+6*(cnm(i,18)+cnm(i,19)+2*(cnm(i,23)
$ +cnm(i,29)+cnm(i,24)+cnm(i,25)+4*cnm(i,27)+cnm(i,28)+cnm(i,30)
if(TSi.le.oxd(1)then
cnm(i,17)=oxd(1)-TSi
goto 300
else
DSi=TSi-oxd(1)
end if
if(DSi.le.cnm(i,30)/2)then
cnm(i,31)=DSi
cnm(i,30)=cnm(i,30)-2*DSi
goto 300
else
cnm(i,31)=cnm(i,30)/2
cnm(i,30)=0
DSi=DSi-cnm(i,31)
end if
if(DSi.le.cnm(i,11))then
cnm(i,11)=cnm(i,11)-DSi
cnm(i,12)=cnm(i,12)+DSi
goto 300
else
DSi=DSi-cnm(i,11)
cnm(i,12)=cnm(i,12)+cnm(i,11)
cnm(i,11)=0
end if
if(DSi/4.le.cnm(i,19)then
cnm(i,21)=DSi/4
cnm(i,19)=cnm(i,19)-DSi/4
goto 300
else
cnm(i,21)=cnm(i,19)
cnm(i,19)=0
DSi=DSi-4*cnm(i,21)
end if
if(DSi/2.le.cnm(i,18)then
cnm(i,20)=DSi/2
cnm(i,18)=cnm(i,18)-DSi/2
goto 300
else
cnm(i,20)=cnm(i,18)
cnm(i,18)=0
DSi=DSi-2*cnm(i,20)
end if
if(DSi.le.cnm(i,28)/2)then
cnm(i,26)=DSi
cnm(i,28)=cnm(i,28)-2*DSi
goto 300
else
cnm(i,26)=cnm(i,28)/2
cnm(i,28)=0
DSi=DSi-cnm(i,26)
end if
if(DSi.le.cnm(i,29)then
cnm(i,26)=cnm(i,26)+DSi/2
cnm(i,31)=cnm(i,31)+DSi/2
cnm(i,29)=cnm(i,29)-DSi
else
cnm(i,26)=cnm(i,26)+cnm(i,29)/2
cnm(i,31)=cnm(i,31)+cnm(i,29)/2
DSi=DSi-cnm(i,29)
cnm(i,29)=0
cnm(i,22)=DSi/2
cnm(i,20)=cnm(i,20)-DSi/2
end if
if(cnm(i,20).lt.0)then
write(*,280)Sample(i)
280 format(/5X,’-lc norm for sample’,A6,
$ ’;poor analyses or sampling!’)
end if
**** calCulate formula weight of mafic norms ****************************
300 RMF=oxd(8)/TMF
cwt(29)=248.0944-RMF*31.542
cwt(30)=131.9307-RMF*31.542
cwt(31)=203.7771-RMF*63.084
sum=0
do j=1,31
cnm(i,j)=cwt(j)*cnm(i,j)
sum=sum+cnm(i,j)
end do
cnm(i,32)=sum
di=0
do j=17,22
di=di+cnm(i,j)
end dO
cnm(i,33)=di
sum=0.01*(cnm(i,29)+cnm(i,19)+cnm(i,23)+1.0E-8
cnm(i,34)=cnm(i,29)/sum
cnm(i,35)=cnm(i,19)/sum
cnm(i,36)=cnm(i,23)/sum
sum=0.01*(cnm(i,23)+cnm(i,19)+cnm(i,18)+1.OE-8
cnm(i,37)=cnm(i,23)/sum
cnm(i,38)=cnm(i,19)/sum
cnm(i,39)=cnm(i,18)/sum
Fld=0.01*(cnm(i,20)+cnm(i,21)+cnm(i,22)+1.0E-8
cnm(i,45)=Fld/(Fld+sum)
sum=0.01*(cnm(i,17)+cnm(i,19)+cnm(i,18)+1.0E-8
cnm(i,40)=cnm(i,17)/sum
cnm(i,41)=cnm(i,19)/sum
cnm(i,42)=cnm(i,18)/sum
cnm(i,43)=cnm(i,17)/(sum+0.01*cnm(i,23)
cnm(i,44)=100*cnm(i,23)/(cnm(i,18)+cnm(i,23)+1.0E-8)
if(i.lt.n)goto 15
500 If(ns.lt.n)i=i-1
write(3,530)(Sample(k),k=1,i).
530 format(/1X,’Title’,10A7)
531 do j=1,m
do k=1,i
if(OXDS(k,j).gt.0.005)then
write(3,535)OXT(j),(OXDS(kk,j),kk=1,i)
exit
end if
end do
end do
write(3,534)(Tot(k),k=1,i)
结晶岩热力学软件
45 format(A6,15F6.2)
ns=ns+1
SiO2O=OXD(1)
Ti02O=OXD(2)
Al2O3=OXD(3)
Fe2O3=OXD(5)
FeO=OXD(6)
MnO=OXD(7)
MgO=OXD(8)
CaO=OXD(9)
Na2O=OXD(10)
K2O=OXD(11)
P205=OXD(12)
if(MgO.eq.0)MgO=1.0E-8
TA=Na2O+K2O
if(TA.eq.0)TA=1.0E-8
PRM(i, 1)=TA
CTA=CaO+TA
PRM(i,2)=100*TA/CTA
TFeO=Fe2O3+FeO
TFM=TFeO+MgO
PRM(i,3)=100*TA/TFM
PRM(i,4)=100*K2O/TA
FeOt=FeO+0.98*Fe2O3
PRM(i,5)=FeOt
PRM(i,6)=FeOt/MgO
PRM(i,7)=Fe2O3/TFeO
PRM(i,8)=100*TFeO/TFM
PRM(i,9)=100*MgO/TFM
PRM(i,10)=100*MgO/(TFM+TA)
PRM(i,11)=SiO2O/3+K2O-(CaO+MgO+FeO)
if(SiO2O.gt.43.0)then
Sigma=TA**2/(SiO2O-43)
PRM(i,12)=Sigma
else
PRM(i,12)=-1
end if
PRM(i,13)=Sigma
PRM(i,14)=(Al2O3-Na2O)/(Ti02O+1.0E-8)
PRM(i,15)=100*TA**2/(SiO2O-25)
do j=13,15
if(PRM(i,j).gt.0)then
PRM(i,j)=-1
else
PRM(i,j)=Log10(PRM(i,j)
end if
end do
PRM(i,16)=0.0088*SiO2O-0.0774*Ti02O+0.0102*Al2O3+0.0066*FeO
$ -0.0017*MgO-0.0143*CaO-0.0155*Na2O-0.0007*K2O
PRM(i,17)=-0.0130*SiO2O-0.0185*Ti02O-0.0129*Al2O3-0.0134*FeO
$ -0.0300*MgO-0.0204*CaO-0.0481*Na2O+0.0715*K2O
PRM(i,18)=-0.0221*SiO2O-0.0532*Ti02O-0.0361*Al2O3-0.0016*FeO
$ -0.0310*MgO-0.0237*CaO-0.0614*Na2O-0.02*K2O
PRM(i,19)=100*Na2O/CTA
PRM(i,20)=100*K2O/CTA
PRM(i,21)=100*CaO/CTA
TFMA=TFM+TA
PRM(i,22)=100*TFeO/TFMA
PRM(i,23)=100*TA/TFMA
PRM(i,24)=100*MgO/TFMA
TAFM=FeOt+MgO+Al2O3
PRM(i,25)=100*FeOt/TAFM
PRM(i,26)=100*MgO/TAFM
PRM(i,27)=100*Al2O3/TAFM
TMP=Ti02O/10+MnO+P205
if(TMP.eq.0)TMP=l.0E-8
PRM(i,28)=10*Ti02O/TMP
PRM(i,29)=100*MnO/TMP
PRM(i,30)=100*P205/TMP
TKP=Ti02O+K2O+P205
if(TKP.eq.0)TKP=1.0E-8
PRM(i,31)=100*Ti02O/TKP
PRM(i,32)=100*K2O/TKP
PRM(i,33)=100*P205/TKP
TAK=Ti02O+Al2O3/10+K2O
PRM(i,34)=100*Ti02O/TAK
PRM(i,35)=10*Al2O3/TAK
PRM(i,36)=100*K2O/TAK
do j=1,m
OXD(j)=OXD(j)/GFW(j)
end do
PRM(i,37)=OXD(8)/(OXD(6)+OXD(8))
PRM(i,38)=OXD(3)/(OXD(9)+OXD(10)+OXD(11))
AlNaK=2*(OXD(3)-OXD(10)-OXD(11))
Sum=AlNaK+OXD(9)+(OXD(6)+OXD(8))
PRM(i,39)=100*AlNaK/Sum
PRM(i,40)=100*OXD(9)/Sum
PRM(i,41)=100*(OXD(6)+OXD(8))/Sum
PRM(i,42)=1000*(4*OXD(1)-22*(OXD(10)+OXD(11))-2*(OXD(2)+2*OXD(5)
$ +OXD(6)))
PRM(i,43)=1000*(6*OXD(9)+2*(OXD(8)+OXD(3))
if(i.lt.n)goto 40
200 if(ns.lt.n)i=i-1
write(4,215)(Sample(k),k=1,i)
215 format(/lX,'paramt',10A7)
do j=1,npr-2
write(4,218)Index(j),(PRM(k,j),k=1,i)
218 format(1X,A6,10F7.2)
end do
do j=npr-1,npr
write(4,220)Index(j),(PRM(k,j),k=1,i)
220 format(1X,A6,10F7.0)
end do
if(i.eq.n)goto 35
goto 236
230 write(*,*)'File read error,data skipped!’
236 write(*,240)OFN
240 format(/'Edit',A,'to look over the results!')
end
*************************************************************************
6.计算实例
甘肃北祁连九个泉地区,早古生代拉斑玄武质海相火山岩的CIPW标准矿物含量和常用岩石化学参数计算(马鸿文等,1994,未发表资料)。
输入文件:exam83.dat
83105 48.87 1.97 15.72 4.50 7.17 0.22 6.61 4.41 5.10 0.46 0.33 0.31 3.72 0.37
83106 50.45 1.67 14.98 7.51 4.63 0.19 4.83 6.58 5.21 0.10 0.27 0.26 2.98 0.29
90410 49.95 1.10 15.93 1.83 7.33 0.18 6.57 8.68 3.66 0.42 0.12 0.35 3.56 0.10
72404 50.36 2.19 12.91 3.47 10.39 0.21 6.45 5.46 3.76 0. 0.37 0.00 3.24 0.49
71913 50.97 1.46 15.34 4.13 5.41 0.15 6.42 6.54 4.82 0.09 0.14 0.91 2.83 0.56
71607 48.53 1.19 15.51 2.51 7.00 0.22 7.12 8.62 3.86 0.20 0.07 0.00 4.34 0.50
71902 48.82 1.58 15.40 3.40 5.00 0.16 6.63 7.17 4.10 0.84 0.18 2.67 3.39 0.53
72409 45.83 2.60 13.06 7.62 8.38 0.20 7.36 7.37 3.32 0.26 0.31 0.00 3.57 0.10
71509 51.60 1.06 15.36 2.68 6.15 0.34 7.03 6.26 4.83 0.04 0.06 0.00 3.74 0.49
71604 47.24 0.94 18.73 2.02 5.51 0.15 7.05 10.31 2.15 1.63 0.09 1.12 3.06 0.29
输出文件:exam84.dat
结晶岩热力学软件
结晶岩热力学软件
结晶岩热力学软件