LMDz with OpenACC annotations (LMDZ / acc)

Description

This is the plugin to run the model LMDZ. Please see further details on LMDZ itself here

Yaml arguments

The following arguments are used to configure the plugin. pyCIF will return an exception at the initialization if mandatory arguments are not specified, or if any argument does not fit accepted values or type:

Mandatory arguments

fileexec: (mandatory)

path to DISPERSION executable

accepted type: str

Optional arguments

autoflush: (optional): True

Clean sub-directories of temporary files (mod.bin, etc.)

accepted type: bool

dir_sources: (optional):

Path to DISPERSION sources. Overwrites fileexec if specified.

accepted type: str

periods: (optional): 1MS

Frequency for sub-simulations

accepted type: str

flx_tresol: (optional): 1D

Expected time step between flux values in the executable

accepted type: str

physic: (optional): True

Use physics in LMDZ

accepted type: bool

compressed_phystoke: (optional): True

Use compressed phystoke files

accepted type: bool

dump: (optional): False

Dump trajq as netCDF

accepted type: bool

do_chemistry: (optional): True

Use the chemistry

accepted type: bool

auto-recompile: (optional): False

Auto-compile executables before running if executables not available

accepted type: bool

force-recompile: (optional): False

Force compilation even if executables available

accepted type: bool

force-compile-stderr: (optional): False

Force printing what happened during compiling

accepted type: bool

compile-clean: (optional): False

Cleaning repositories before compiling; slows the compilation but prevent side-effects from re-compiling.Can be switched of for minor modifications in the code

accepted type: bool

compile-mode: (optional): PROD

Compilation mode

accepted values:

  • PROD: production mode; all optimizations are activated

  • DEBUG: check-all and traceback are activated, hence slowing down the execution

compile-acc-target: (optional): multicore

Target for ACC annotations

accepted values: [‘multicore’, ‘gpu’]

compiler: (optional): nvfortran

Compiler to use

accepted values: [‘nvfortran’]

nproc: (optional)

Force using a given number of processors. By default, LMDz uses all available processors

accepted type: int

Requirements

The current plugin requires the present plugins to run properly:

Requirement name

Requirement type

Explicit definition

Any valid

Default name

Default version

domain

Domain

False

False

LMDZ

std

flux

DataStream

True

False

LMDZ

sflx

chemistry

Chemistry

False

False

CHIMERE

gasJtab

emis_species

DataStream

True

False

LMDZ

bin

meteo

DataStream

True

False

LMDZ

mass-fluxes

inicond

DataStream

True

False

LMDZ

ic

prescrconcs

DataStream

True

False

LMDZ

prescrconcs

kinetic

DataStream

True

False

LMDZ

photochem

prodloss3d

DataStream

True

False

LMDZ

prodloss3d

Yaml template

Please find below a template for a Yaml configuration:

 1model:
 2  plugin:
 3    name: LMDZ
 4    version: acc
 5    type: model
 6
 7  # Mandatory arguments
 8  fileexec: XXXXX  # str
 9
10  # Optional arguments
11  autoflush: XXXXX  # bool
12  dir_sources: XXXXX  # str
13  periods: XXXXX  # str
14  flx_tresol: XXXXX  # str
15  physic: XXXXX  # bool
16  compressed_phystoke: XXXXX  # bool
17  dump: XXXXX  # bool
18  do_chemistry: XXXXX  # bool
19  auto-recompile: XXXXX  # bool
20  force-recompile: XXXXX  # bool
21  force-compile-stderr: XXXXX  # bool
22  compile-clean: XXXXX  # bool
23  compile-mode: XXXXX  # PROD|DEBUG
24  compile-acc-target: XXXXX  # multicore|gpu
25  compiler: XXXXX  # nvfortran
26  nproc: XXXXX  # int