## Matlab Codes for Volcanology

The following codes for Matlab are those which I have developed during the course of my PhD so far, please feel free to use them. If you do please acknowledge me! I will upload more as and when I produce them and have time to upload! They will also be available on vhub. Any questions please contact me!

## 1) Atmospheric Pressure

Here is a very simple Matlab function for calculating atmospheric pressure. The only value which needs inputting is the number of metres above sea level (asl) that you want to determine the atmospheric pressure for. I often use this (and link it in) with other code for looking at strombolian activity.

atmpressure.m |

## 2) Slug/Bubble Molar Mass and Density

When modelling bubble rise and/or slug based strombolian activity it is often essential to know the slug molar mass and density for use with further calculations. To run this function the mass in kg of CO2, SO2 and H2O of the bubble/slug are needed (generally the most voluminous gases in magmas). The gas_properties file is also needed to run the function - it contains the properties of common volcanic gases.

slug.m |

gas_properties.mat |

## 3) Stokes Rise of Bubbles - Single Point

A function to calculate the rise speed of a bubble given a specific radius.

stokes.m |

## 4) Stokes Rise of Bubbles - Dynamic

This function calculates the dynamic change in rise speed and radius of a bubble (amongst others) from a set depth (length in the code). Also included is the time taken for the bubble to travel each metre iteration (slug_tt) and the total time it takes to travel from the set depth (slug_ttC). Again the gas properties file is needed to run this function.

stokesf.m |

gas_properties.mat |

## 5) Magma Density and Viscosity Calculations

A simple Matlab function for calculating the density of the magma.

It is based on the method of Bottinga & Weill (1970) - Densities of silicate systems calculated from partial molar volumes of oxide components. American Journal of Science 269, pp. 169-182

It requires the inputs:

SiO2

TiO2

Al2O3

FeO

MgO

CaO

Na2O

K2O

H2O - water content

mTc - magma temperature in celsius

The outputs are:

density_gas = density of the magma with gas

density_no_gas = density of the magma with no gas

totalweight = total weight of all inputs - ideally this should be close to 100!

I have also used the Excel spreadsheet by John D. Winter (Available at: http://www.whitman.edu/geology/winter/ - which is called "Magma Density Spreadsheet" and the Excel spreadsheet by GabbroSoft (Available at: http://www.gabbrosoft.org/spreadsheets.html) which is called "MAGMA-DENSITY" as guides when creating the Matlab code.

The Excel spreadsheets are probably more user friendly, however, I have found that when performing modelling tasks with large datasets it is easier to have everything running on one program. I also find it is useful to run this function in combination with work I do on movement of bubbles in magma (see other contributions).

It is based on the method of Bottinga & Weill (1970) - Densities of silicate systems calculated from partial molar volumes of oxide components. American Journal of Science 269, pp. 169-182

It requires the inputs:

SiO2

TiO2

Al2O3

FeO

MgO

CaO

Na2O

K2O

H2O - water content

mTc - magma temperature in celsius

The outputs are:

density_gas = density of the magma with gas

density_no_gas = density of the magma with no gas

totalweight = total weight of all inputs - ideally this should be close to 100!

I have also used the Excel spreadsheet by John D. Winter (Available at: http://www.whitman.edu/geology/winter/ - which is called "Magma Density Spreadsheet" and the Excel spreadsheet by GabbroSoft (Available at: http://www.gabbrosoft.org/spreadsheets.html) which is called "MAGMA-DENSITY" as guides when creating the Matlab code.

The Excel spreadsheets are probably more user friendly, however, I have found that when performing modelling tasks with large datasets it is easier to have everything running on one program. I also find it is useful to run this function in combination with work I do on movement of bubbles in magma (see other contributions).

density.m |

A simple Matlab function for calculating the viscosity of magma. It is based on the method of Shaw (1972). Viscosities of magmatic silicate liquids: an empirical method of prediction. American Journal of Science 272, pp. 870-893

It requires the inputs:

SiO2

TiO2

Al2O3

Fe2O3

MnO

MgO

CaO

Na2O

K2O

P2O5

H2O - water content

mTc - magma temperature in celsius

The outputs are:

viscosity_gas = viscosity of the magma with the water content

viscosity_no_gas = viscosity of the magma with no gas

totalweight = total weight of all the inputs

During creation I also used the excel spreadsheet by John D. Winter as a guide (Available at: http://www.whitman.edu/geology/winter/) - which is called "Magma Viscosity spreadsheet". As per my magma density code, the excel spreadsheet is probably more user friendly, however, it is useful to have this file in Matlab. It is also useful to use in combination with modelling work.

If you have any questions please don't hesitate to contact me.

It requires the inputs:

SiO2

TiO2

Al2O3

Fe2O3

MnO

MgO

CaO

Na2O

K2O

P2O5

H2O - water content

mTc - magma temperature in celsius

The outputs are:

viscosity_gas = viscosity of the magma with the water content

viscosity_no_gas = viscosity of the magma with no gas

totalweight = total weight of all the inputs

During creation I also used the excel spreadsheet by John D. Winter as a guide (Available at: http://www.whitman.edu/geology/winter/) - which is called "Magma Viscosity spreadsheet". As per my magma density code, the excel spreadsheet is probably more user friendly, however, it is useful to have this file in Matlab. It is also useful to use in combination with modelling work.

If you have any questions please don't hesitate to contact me.

viscosity.m |