Skip to the content.

back to top

Getting started with MiMA

This model is based on the gray radiation model of Frierson, Held, and Zurita-Gotor, JAS (2006). In fact, it even includes that exact model with a namelist switch flag. The major development step of MiMA is the replacement of the gray radiation scheme with a full radiative transfer code. For maximum portability and generality, that radiative transfer code is the Rapid Radiative Transfer Model RRTM, developed by AER, and described in the references below.

Downloading source

You can download MiMA for free. However, we ask that you cite all relevant references given on the front page with any publications that might result from its use.

Get the latest version from GitHub.

Compiling

CMake

Building using CMake should follow the same process, regardless of the platform MiMA is being built on.

mkmf

Building using mkmf requires the user to amend the compilescript.csh scipt as appropriate for the platform they are building on, and possibly defining a mkmf template for their platform.

Adding files to the build process

Test run

A small test run is defined in the input/ directory.

MiMA will automatically look for input.nml, so it is run without any explicit input (i.e. ./mima.x is fine - don’t try ./mima.x < input.nml).

The test run will be one 360-day year with the following parameters:

To run the test simulation, do the following:

EXECDIR=/PATH/TO/RUN/DIRECTORY
cp -r input/* $EXECDIR/
cp exp/exec.$PLATFORM/mima.x $EXECDIR/
cd $EXECDIR
mkdir RESTART
mpiexec -n $N_PROCS ./mima.x
CCOMB=/PATH/TO/MiMA/REPOSITORY/bin/mppnccombine.$PLATFORM
$CCOMB -r atmos_daily.nc atmos_daily.nc.*
$CCOMB -r atmos_avg.nc atmos_avg.nc.*

The last three lines make sure the indiviudal diagnostics files from each CPU are combined into one daily and one average file.

Radiation options

By default, MiMA uses the RRTM radiation code. This is set by do_rrtm_radiation = .true. (default). There are, however, two more options for radiation, described below.

MiMA includes the gray radiation scheme developed by Dargan Frierson (Frierson, Held, Zurita-Gotor, JAS (2006) ). To switch between the radiation schemes, the flags do_grey_radiation, and do_rrtm_radiation in the namelist physics_driver_nml can be set accordingly (only one of them should be .true. of course).

Theoretically, there is also the possibility of running the full AM2 radiation scheme, with the flag do_radiation in physics_driver_nml. However, this option will need a lot of input files for tracer concentration, which are not part of the MiMA repository. This option, although all the relevant files are present and being compiled, has never been tested, and should only be used with great caution.

Life cycle calculations

MiMA can be used to run life cycle experiments, as explore in Yamada and Pauluis (2017). To specify the initial conditions, activate this flag in “spectral_dynamics_nml”:

specify_initial_conditions = .true.

Then a netcdf file containing the initial conditions for zonal wind, meridional wind, temperature, specific humidity, and surface pressure (ucomp, vcomp, temp, sphum, and ps, respectively) must be provided. It should be at the resolution of the model. It should be named initial_conditions.nc and placed in the INPUT/ directory where the model is executed. Note that if you do not include a slight zonal perturbation, the model will maintain a zonally symmetric state, stuck to the unstabled fixed point. There are different strategies for exciting zonal asymmetries. You can add random noise, or focus in on a particular wavenumber, as detailed below.

A traditional life cycle is run with no forcing. To shut off all diabatic processes, you must make these adjustments to the name list. To turn off radiation and damping (except for hyperdiffusion), add these options to “physics_driver_nml”

do_grey_radiation = .false.,
do_rrtm_radiation = .false.,
do_damping = .false. 

Then, to turn off any diabatic forcings at the lower boundary, in “surface_flux_nml” add these options:

no_surface_momentum_flux  = .true.,
no_surface_moisture_flux  = .true.,
no_surface_heat_flux      = .true.,
no_surface_radiative_flux = .true. 

Lastly, the spectral dynamical core allows one to focus in on a particular wavenumber, as was done by Yamada and Pauluis (2017). For example, to run a T170 resolution model, but enforce 6 fold symmetry (i.e., only capture instabilities at wave 6 and harmonics, use these options in “spectral_dynamics_nml”:

This trick allows you to run a higher resolution integration about 6 times faster.

Lastly, note that hyperdiffusion is still required for stability. For the Yamada and Pauluis life cycles, these options were selected in “spectral_dynamics_nml”:

damping_option          = 'resolution_dependent',
damping_order           = 3,
damping_coeff           = 6.94444444e-5,
damping_order_vor       = 3,
damping_order_div       = 3,
damping_coeff_vor       = 6.94444444e-5,
damping_coeff_div       = 6.94444444e-5,

Reference:

Yamada, R., and O. Pauluis, 2017: Wave-mean-flow interactions in moist baroclinic lifecycles. J. Atmo. Sci., 74, 2143-2162, doi:10.1175/JAS-D-16-0329.1.