File Exchange

## Methane Solubility

version 1.2 (10.6 KB) by

Calculates the solubility of methane in water.

Updated

Given pressure (in MPa), Temperature (in Kelvin) and Salinity (in either mol/kg or parts per thousand), this function uses the formulae in Tischenko et al (2005) and Duan et al (1992, 2006) to calculate the solubility of methane inside and outside the methane hydrate stability field.
This function will compute solubilities either over a range of pressures, temperatures or salinities, or for discrete pressure, temperature, salinity points. Two demonstration can be seen using the following code:

To calculate solubility over a range of conditions:

P = [5:.5:15]';
T = [273:.5:293]';
S = [0:10:30];
SalinityUnits = 'ppt';
Datatype = 'range';
NetCH4Solubility = MethaneSolubility(P,T,S,SalinityUnits,Datatype);
surf(T,P,NetCH4Solubility(:,:,1))
xlabel('Temperature (K)')
ylabel('Pressure (MPa)')
zlabel('Methane Solubility (moles CH4 per kg water)')

To calculate solubility for discrete data points:

P = [5:.5:15]';
T = [273:1:293]';
S = [0:1:20]';
SalinityUnits = 'ppt';
Datatype = 'points';
NetCH4Solubility = MethaneSolubility(P,T,S,SalinityUnits,Datatype);
plot(T,NetCH4Solubility,'bo')

Elizabeth Chapman

### Elizabeth Chapman (view profile)

Hi Bill,
I am very new to Matlab, but I'm hoping you can help me. When I run your sample script:
P = [5:.5:15]';
T = [273:1:293]';
S = [0:1:20]';
SalinityUnits = 'ppt';
Datatype = 'points';
NetCH4Solubility = MethaneSolubility(P,T,S,SalinityUnits,Datatype);
plot(T,NetCH4Solubility,'bo')

I get the following error message:
Undefined function or variable 'MethaneSolubility'.
Error in Untitled (line 6)
NetCH4Solubility = MethaneSolubility(P,T,S,SalinityUnits,Datatype);

Liz

William Waite

### William Waite (view profile)

I'm sorry for the confusion, David. I was basing the matlab script off a series of published papers, and they suggest that at low pressures, the solubility should be in the .001 - .002 moles per kilogram range, so your answer of .0013 seems reasonable. See for example:

Duan, Z. H., and S. D. Mao (2006), A thermodynamic model for calculating methane solubility, density and gas phase composition of methane-bearing aqueous fluids from 273 to 523 K and from 1 to 2000 bar, Geochimica et Cosmochimica Acta, 70(13), 3369-3386.

Thanks,
Bill

David

### David (view profile)

I might be converting wrong, because I am getting very high methane solubility equilibrium concentrations when I use real data from 10m depth.. see below

Temp_K=283
Press_MPa= 0.1014
Sal_ppt=22
ch4_eqsol_M=methanesolubility(Press_MPa, Temp_K, Sal_ppt, 'ppt','points');

I get a value of 0.0013 M, but it should be closer to 3nM

Thanks,

Dave