PartMC

Overview

Particle-resolved Monte Carlo (PartMC) code for atmospheric aerosol simulation is mainly modern Fortran, with a few parts still clearly showing their Fortran 77 heritage. Fortran 2003 features are used heavily (especially allocatable array features).

The PartMC suite includes a number of programs, amongst them being:

  • partmc – the main partmc command reads .spec files and does the run specified therein.
  • numeric_diff – compare two files containing numerical arrays and check whether they are the same as each other, to within the specified tolerance.
  • urban_plume_process – the process program which reads NetCDF output files and process them.
  • test_poisson_sample – the extract_aero_size program reads NetCDF output files and writes out the aerosol number or mass

Version 2.6.1 is installed on the CSF.

Restrictions on use

PartMC is open source and free for unlimited use, Licensed under the GNU General Public License version 2 or (at your option) any later version. – PartMC

Set up procedure

We now recommend loading modulefiles within your jobscript so that you have a full record of how the job was run. See the example jobscript below for how to do this. Alternatively, you may load modulefiles on the login node and let the job inherit these settings.

Load one of the following modulefiles:

module load apps/gcc/partmc/2.6.1

Running the application

Please do not run partmc on the login node. Jobs should be submitted to the compute nodes via batch.

Serial batch job submission

Ensure that all the files of the scenario has been copied over to the scratch area:

cp -r /opt/apps/apps/gcc/partmc/2.6.1/test/emission ~/scratch/

Create a batch submission script (which will load the modulefile in the jobscript), for example:

#!/bin/bash --login
#$ -cwd             # Job will run from the current directory

# Choose your required version
module load apps/gcc/partmc/2.6.1 tools/gcc/gnuplot/5.2.7

# Go to your local copy of the emission files
cd ~/scratch/emission

# Run a single test
ctest -R bidisperse   # argument is a regexp for test names

# Run test with visible output or to make plots from the tests.
./test_emission_1.sh
./test_emission_2.sh
./test_emission_3.sh            
gnuplot -persist plot_species.gnuplot 

Submit the jobscript using:

qsub scriptname

where scriptname is the name of your jobscript.

If you need more RAM (memory) to complete the analysis successfully, and you may well do!, please add the flags mentioned at the high-memory jobs page for more information.

Further info

Updates

None.

Last modified on September 27, 2023 at 4:47 pm by George Leaver