Skip to content

3a. Run unforced model. Constant density

jpolton edited this page Apr 25, 2022 · 1 revision

In this experiment an unforced ocean is initialised from rest. It is initialised with constant density. Any velocities that are generated are the result of model errors. These can be either i) genuine code bugs (hopefully zero), or ii) numerical errors. This can be a useful check that things are working as expected.

The model can be initialised with constant density either by prescribing it as an initial condition, or by compiling it into the code as an analytic function. Here we do the latter.

export CONFIG=NEMOconstTS # NEMO exec with hardwired constant T,S Then compile NEMO (this was already done in Step 1 so need not be repeated). It will select and compile with a prescribed stratification given in $NEMO/cfgs/$CONFIG/MY_SRC/usrdef_istate.F90

First set paths if not already done . ./make_paths.sh

Go to the experiment folder cd RUN_DIRECTORIES/EXP_unforced_constTS

Verify that the boundary condition in namelist_cfg is false

vi namelist_cfg
ln_bdy=.false.

Run the experiment from SCRIPTS folder

. ./run_unforced_constTS.sh

NB the run_unforced_constTS.sh script assumes you can submit jobs to the n01-ACCORD ARCHER2 account. Edit submit.slurm accordingly.


Processor decomposition

First time through don't specify the processor decomposition. In namelist_cfg:

!-----------------------------------------------------------------------
&nammpp        !   Massively Parallel Processing                      ("key_mpp_mpi")
!-----------------------------------------------------------------------
...              !  if T: the largest number of cores tested is defined by max(mppsize, jpni*jpnj)
   ln_nnogather =  .true.  !  activate code to avoid mpi_allgather use at the northfold
   jpni        = -1      !  jpni   number of processors following i (set automatically if < 1)
   jpnj        = -1      !  jpnj   number of processors following j (set automatically if < 1)

After running inspect ocean.output to see the recommended processor decomposition and update accordingly. For example (as in the repository):

!-----------------------------------------------------------------------
&nammpp        !   Massively Parallel Processing                        ("key_mpp_mpi")
!-----------------------------------------------------------------------
...              !  if T: the largest number of cores tested is defined by max(mppsize, jpni*jpnj)
   ln_nnogather =  .true.  !  activate code to avoid mpi_allgather use at the northfold
   jpni        = 41      !  jpni   number of processors following i (set automatically if < 1)
   jpnj        = 23      !  jpnj   number of processors following j (set automatically if < 1)