Skip to content

Workflow: 1D Single Column with MARBL

Elizabeth Yankovsky edited this page Oct 22, 2022 · 4 revisions

Instructions for running the 1D Column Model with MARBL enabled (on Cheyenne)


  1. You will first need to build MOM6-Examples as described by Mike Levy here.

  2. Now, if you go into the directory MOM6-examples/ocean_only/single_column you will see there are several directories including BML, EPBL, and KPP. These represent different choices one can make for the vertical parameterizations (more info in the MOM6 docs). I suggest starting with the K-Profile Parameterization (KPP), which is a traditionally used scheme. This is the one that I've been working with for now.

  3. My recommendation is to leave the single_column directory intact and make your own copy of that directory that you'll be working with and modifying; for example, I've created /glade/u/home/eyankovsky/MOM6-examples/ocean_only/my_single_column/. Within that is the KPP directory that I've been performing simulations in (feel free to look at that).


  1. Once you're inside of the KPP directory, you can make modifications to MOM_input or MOM_override to control various aspects of your run. I'm happy to help out with this. Here are a few changes I made. Again, you can see all of this in the directory /glade/u/home/eyankovsky/MOM6-examples/ocean_only/my_single_column/KPP.
  • In MOM_override I set CESM_INPUTDIR = "INPUT/BATS" (this is where I place all of the initial conditions for the MARBL tracers)

  • I've been running the single column experiment for the BATS location. In order to do this, one has to first create the initial condition files for the MARBL tracers that correspond to that location. I do this in the Generate_IC_Files.ipynb here. Once you run the model, it will generate an initial state filed called MOM_IC.nc that you can compare against your own initial condition file to make sure the model is initialized properly, this is done in Check_MARBL_initialization.ipynb here. image

  • I changed the file diag_table to save all of the MARBL tracer information (you can copy what I have there)

  • Make sure you also specify the following in MOM_input:

! === module MOM_fixed_initialization ===
USE_MARBL_TRACERS = True
                                ! "[Boolean] default = False
                                ! If true, use the MARBL tracer package."
! === module MARBL_tracers ===
MARBL_TRACERS_IC_FILE = "IC_FILE_COLUMN.nc" ! default = "ecosys_jan_IC_omip_MOM_tx0.66v1_c211008.nc"
                                ! The file in which the MARBL tracers initial values can be found.
MARBL_FESEDFLUX_FILE = "MARBL_FESEDFLUX_FILE_COLUMN.nc" ! default = "fesedflux_total_reduce_oxic_tx0.66v1.c211020.nc"
                                ! The file in which the iron sediment flux forcing field can be found.
MARBL_FEVENTFLUX_FILE = "MARBL_FEVENTFLUX_FILE_COLUMN.nc" ! default = "feventflux_5gmol_tx0.66v1.c211020.nc"
                                ! The file in which the iron vent flux forcing field can be found.

  1. You'll see that I have a file called submit_cheyenne in the KPP directory. Here are its contents:
#!/bin/bash

### Job Name
#PBS -N MARBL_test

### Project code
#PBS -A P93300070
#PBS -l walltime=02:59:00
#PBS -q regular

### Merge output and error files
#PBS -j oe
#PBS -k eod

### Select 1 nodes with 1 CPU
#PBS -l select=1:ncpus=1:mpiprocs=1

### Send email on abort, begin and end
#PBS -m abe
### Specify mail recipient
#PBS -M eay8226@nyu.edu

### Run the executable
mpiexec_mpt ../../../build/intel/ocean_only/repro/MOM6

To submit I job I simply do 'qsub submit_cheyenne' which submits this job to the queue. In that file you'll have to modify the mail recipient (otherwise you'll spam me with updates about your jobs :) ) ​ To check the status of the job do 'qstat -u yourusername'.


  1. If the job ran successfully you can start analyzing the data! You can see some basic analysis that I've performed in Basic_analysis.ipynb here.