From scratch

Here's an alternative how-to for those who don't work on a system where Cylc, Rose and FCM have already been installed and/or can't use the Met Office Virtual Machine (e.g. for security reasons). I'm also assuming little or no familiarity with any recent version of JULES (which, considering all the changes with the introduction of Rose, currently includes more JULES users than you might think).

The steps below should get you up and running with the bare-minimum of what you need (and it's also more or less an update on my Tutorial 1 of the 2016 JULES Short course here). The only thing I've assumed is that you've got access to a UNIX/Linux system either directly or through a remote shell client and X server (I use MobaXterm) and that you have a Fortran compiler installed (I use gfortran), Python (at least version 2) and NetCDF libraries on that system (installing NetCDF is not impossible, but too fiddly to go through here: see here and/or ask your System Administrator about this if they haven't been installed).


Install Cylc, Rose and FCM and cache your MOSRS password

You need to have three programs installed on your system: Cylc, Rose and FCM. All three of these are necessary for running JULES and I've done a page about installing each with all the steps required (linked here below).

Ideally, these three will be installed globally by your system administrator, but if that isn't possible (or you are the system administrator) then you will need to go through some/all of these steps for a local installation. First check what is on your system by putting these commands into a UNIX shell:

echo $SHELL
     #You need to be in a bash shell, so if this returns anything except "/bin/bash" ask your system administrator how you can get into bash
cylc check-software
     #If Cylc is installed, this will give you a message saying "Full-functionality OK" (and it'll also warn you if you are missing Python (you need vn>=2.6) and some libraries like PyGraphviz and PyGTK)
rose --version
     #Just check you don't get "command not found"
fcm --version
     #Just check you don't get "command not found"

EVEN IF ALL SEEM TO BE INSTALLED OK, your personal profile settings may not be correct for using JULES so please do anyway go through the installation links below to make sure your environment setup is OK and your MOSRS password has been correctly cached.

  • Install Cylc from GitHub following these steps
  • Install Rose from GitHub following these steps (inc. what goes in your ~/.metomi/rose.conf file, which each user needs to set up separately)
  • Install FCM from GitHub following these steps (includes caching your MOSRS password *** which is compulsory for all users before using JULES *** and what goes in your ~/.subversion/servers and ~/.metomi/fcm/keyword.cfg files, which each user needs to set up separately)


Working from local installations (as I'm advising here) is how I run JULES and although it does mean you have to update the programs every 6 months or so, it has the great advantage that you do not have to wait for permission to install globally on any server, which can take sometimes months. Check your setup by trying the commands I use on logging on (see image):


Install and run JULES using the Loobos example

You need to install JULES itself following these steps (this includes the download command for getting hold of a particular version of JULES).

Once installed, there are several ways of running JULES, to suit various types of user (see here or, for JASMIN users, the Unofficial Guide here). The following is based on material found here and here (but n.b. the instructions in ss.3.4.1 of the second link "Running the Loobos example from a fresh download of JULES" do not work as currently stated so do not attempt to work from those):

  • Running JULES using namelists (without Rose) (based on the Loobos example; up to JULESvn4.0 this was the only way to run JULES and many still prefer it)
  • Running JULES using a Rose suite (acquired from namelists or Rosie Go) (based on the Loobos example; since JULESvn4.0 this has been the recommended way to run JULES because it allows you to share your setups and results with other JULES Community members). Don't know what a Rose suite is? See here.
  • Running coupled applications of JULES in the Unified Model (UM): this is beyond the scope of these webpages and I suggest to attend a UM workshop before trying anything like this (e.g. sign up here)
  • and MAJIC, which is a system through which you can run JULES very simply through an online web form. It is the easiest way to run JULES.

A note about the UK Met Office Virtual Machine (VM), which is recommended here: using this involves installing a second boot-up environment on your computer. Advantages: at least one (1) Cylc, Rose, FCM and the whole setup of your computer is pre-installed for you (although not your user profiles and so on). Disadvantages: three main ones in my experience (1) if using an employer's laptop/PC then you will usually not be allowed to install a VM for security reasons (check this!), (2) the VM will take up a lot of your hard drive space which will greatly restrict your other use of that computer and (3) copying between the host and guest operating systems in your machine is only possible via nominated 'shared folders' which can be very restricting (e.g. you can't easily copy text into the VM and out) so if you want to e.g. analyse your JULES outputs using R (usually installed outside the VM) and compare to other files on your system (e.g. land cover maps) then you might find a lot of difficulty). If those disadvantages are not relevant to you, then this is probably the quickest way to get JULES up and running on a new laptop.

Please also note that all the examples in this practical doc are based on point runs of JULES (i.e. not gridded runs). For advice and examples on doing grid-based runs, please see Alberto Martínez's practical 2 from the June 2016 JULES Short Course (a worked example based on the River Thames, U.K.) and also here (this link is worth reading to pick up some tips, but note the actual worked example it describes is only for JULESvn4.1 and also the driving data for GSWP2 is not provided so you can't actually run the example).