Help with NEMO: Compiling, XIOS, and Workflow Questions

Hello everyone,

I’m new (very new!) to NEMO, and I’m currently working on building a Docker image that can run NEMO simulations on cloud machines with minimal issues. So far, I’ve managed to compile and run a simple simulation based on this Apptainer file:
GitHub: Apptainer NEMO Definition File.

However, I’m a bit confused about some aspects of NEMO, and I have a few questions that I hope you can help me with:

  1. Compilation for Each Configuration:
    My understanding is that NEMO needs to be compiled for each configuration. Does this mean that each simulation effectively requires a “compile → run simulation” workflow?

  2. MPI and XIOS:
    I’m familiar with simulators that use MPI for parallel runs, even across multiple machines. NEMO seems to rely on XIOS for diagnostics and output, as stated in the user guide:

    “With the sole exception of running NEMO without MPI (in which case output options are limited to the default minimum), diagnostic outputs from NEMO are handled by the third-party XIOS library.”

    My questions are:

    • If I run NEMO with MPI, is XIOS still used?
    • What exactly is the role of the XIOS server in this context?
  3. Error with Test Case:
    I tried running a test case using the command:

    ./makenemo -m local -a VORTEX -n VORTEX_test  
    

    However, I encountered these errors:

    /nemo/sources/NEMO/NEMOGCM/mk/agrifpp.sh: line 66: cd: /nemo/sources/NEMO/NEMOGCM/tests//NEMOFILES/ppsrc/nemo: No such file or directory  
    /nemo/sources/NEMO/NEMOGCM/mk/agrifpp.sh: line 66: /nemo/sources/NEMO/NEMOGCM/tests//NEMOFILES/conv: No such file or directory  
    

    Where can I find these missing NEMOFILES?

  4. Workflow Overview:
    Would it be accurate to say that NEMO follows this general workflow?
    Generate configuration files → Compile → Run simulation

Thanks in advance for any guidance or clarification you can provide!

  • question 1: Yes, NEMO needs to be compiled for each configuration as each configuration can potentially use different cpp keys and source files.
  • question 2: the XIOS library is dealing with NEMO outputs. It requires MPI. The role of XIOS servers is to offload the work related to NEMO outputs to specific MPI processes (hosting the XIOS servers) so NEMO integration is not slowed down by the output part.
  • question 3: there is a bug somewhere… in makenemo? The name of your test configuration (i.e. VORTEX_test) is missing in the path of the cd instruction you have in your error message: /nemo/sources/NEMO/NEMOGCM/tests//NEMOFILES/ppsrc/nemo should be /nemo/sources/NEMO/NEMOGCM/tests/VORTEX_test/NEMOFILES/ppsrc/nemo
  • question 4: yes