MEDUSA for 4.2.x
================
This repository contains the additions and changes needed to add MEDUSA
as an optional
BGC model in the NEMO
system. All the new resources are kept in the medusa_resources
subdirectory and maintained through this GitLab service. Cloning this repository will
also retrieve the main NEMO
source as a submodule. At any point the MEDUSA code
should
be compatible with the retrieved version of the NEMO
trunk but both code sets are kept
distinct so that remote changes to NEMO
may be tracked.
As well as code only related to MEDUSA
, medusa_resources
contains some OCE
and
TOP
modules that have been modified to support MEDUSA
. These files reside in the
medusa_resources/cfgs/SHARED_MEDUSA/MY_SRC
directory ready to be symbolically
linked from the MY_SRC
directory of any new configuration that wishes to use MEDUSA
. The
script: compare_msa_my_src
can be used to obtain a quick overview of the differences
compared to the equivalent files in the nemo submodule. This will need to be checked
and the SHARED_MEDUSA/MY_SRC
files updated, if necessary, when the submodule is
updated to later versions of the trunk. The current list of differences is provided
in the last_patchset
file. This is simply the output of the compare_my_src
script run just before the last commit.
The script: add_msa_to_nemo
can be used to symbolically include the parts of
medusa_resources
in the nemo tree so that new configurations using MEDUSA
can be
built and run. Any added files are listed in ./nemo/.gitignore
so that they do not
interfere with the main source and good visibility of any changes to NEMO
code outside
of MEDUSA
is maintained. The script adds links to the source code and adds a new reference
configuration: ORCA2_MEDUSA
which can be used as a basis for new configrations which wish to
use MEDUSA
.
Since the new reference configuration is part of the medusa_4.2.x
repository, it is best not to
work directly in this configuration but to create a new configuration that will not be tracked
by git. In fact, if you have run the add_msa_to_nemo script
, then a wildcard: *MEDUSA*
will have be added to the .gitignore
file and so anything with MEDUSA
in its name will
be automatically ignored.
Main MEDUSA (adapted to NEMO-MAIN):
So to get started the recipe is simply:
git clone --recurse-submodules git@git.noc.ac.uk:acc/medusa_4.2.x.git
cd medusa_4.2.x
# put MEDUSA at the right places :
./add_msa_to_nemo
# compile :
cd nemo
./makenemo -r ORCA2_MEDUSA -n MY_NEW_MEDUSA -m x86-64_Anemone -j 8
MEDUSA adapted to NEMO-4.2.1
this version needs a little tweak :
## we don't upload NEMO-submodule strait as we use a different NEMO-git, from the UKMO (we want the GOSI9 branch)
## first get MEDUSA
clone https://git.noc.ac.uk/acc/medusa_4.2.x.git MEDUSA_NEMO4-2-1
cd MEDUSA_NEMO4-2-1/
## switch to the NEMO4.2.1 adapted branch :
git switch 16-medusa-nemo4-2-1-3
## check-out NEMO-GOSI9
git submodule init
git submodule update
# put MEDUSA at the right places :
./add_msa_to_nemo
# compile :
cd nemo
./makenemo -r ORCA2_MEDUSA -n MY_NEW_MEDUSA -m x86-64_Anemone -j 8
Documentation and tutorials
Further documentations on how to compile and run MEDUSA can be found on this git wiki :
- How to run MEDUSA on ANEMONE (The NOC super computer)
- How to run MEDUSA on Archer2
- How to run MEDUSA 1D
- Here is a guide with some precious explanation for MEDUSA's users.
- and for developpers,
- Best practice to develop MEDUSA with git
- How to test your new developemnt using the NEMO SETTE tests.
-
Training
- Here is the documentation for the MEDUSA training