Coupling script

Introduction

We'd like to couple two UMs together, primarily because the chemistry in the UM is vastly expensive and we don't think we'll be able to run it at the full N216 resolution - at least for most of our CMIP runs (see Two UM model). The UMUI doesn't have the facility to run two UMs, but can what it creates be tweaked to produce scripts that can? Hopefully these pages show that this can be done.

The UMUI creates both the input files and all the scripts required to create and run one UM in one run directory. Having done this it simply submits MAIN_SCR which starts the process of creating and running the code. If we have two runs that we'd like to couple, we already have most of the input data and scripting required to create a coupled two UM run. The job of the coupling script is to

  • Create a new run directory
  • Copy all the input files for both runs into new run directory and ensure that there's a version for both UM runs
  • In the build process, add UMRECON2 and UMATMOS2 to our build loops
  • Add any OASIS arguments that are needed in the build process
  • Add any extra branches which are needed to couple the two UMs
  • Create two atmosphere and two reconfiguration executables
  • Ensure that the 2nd UM uses separate environment variables where necessary to the 1st UM.
  • Add an extra reconfiguration stage for the 2nd UM

Running coupling script

Let <senior_rundir> and <junior_rundir> be existing run directories (or just run IDs, if they can be found in ~/umui_jobs), then the coupling script in ~mstringe/ukca/bin can be run with the command

coupleJobs.scr <senior_rundir> <junior_rundir> <couple description>

where <couple description> specifes the type of coupling and can be

  • one: just runs the senior job (so not a coupled job, but will still run both configurations)
  • two: just runs the junior job (again, not a coupled job and will still run both configurations)
  • compare: the code is coupled but the passed fields are only used to compare the differences between the two UMs - determining how much the two UMs have diverged from one another
  • nudge:
  • overwrite:
  • ukca: Richard has said he may use this script to couple the UKCA code to the UM. Here the coupling is at the interface between the UKCA and the UM. The coupling used in the optins above is much deeper into the code and involves the core measurements, like velocity and temperature.
This option determines which extra branches go into the build, and in the case of `ukca' it also changes the namcouple directories used.

In addition to the coupling script, extra submission scripts (the ones generally found in /projects/um1/vn8.6/ibm/scripts) are required to

  • use the 2nd set of environment variables for 2nd UM, and
  • allows two UM executable to be run at once