To run, GEM needs the configuration files (short "config" files) listed below, which all need to be in a directory called "config directory". To make the exchange of these files easier between different users, I suggest we all keep similar "base" directory structures. Suggestion:
~/gem/version/Configs/...
For 'version' put one of the following:
v_4.8.12.u (GEM4.8)
v_5.0.0 (GEM5.0)
v_5.1.1 (GEM5.1.1)
Whenever you have problems with a simulation, let me know what the problem seems to be and where I can find your config files!
These are the needed config files:
If you want to start a new simulation I suggest you copy a set of config files from another simulation, which is as close as possible to the one you want to run.
configexp.cfg
This file is a shell parameter file which gets sourced by the scripts. You can put comments in it like in any other shell script and there must never be a space before or after the '=' sign. The parameters set here determine:
- name of experiment (always keep *_YYYYMM and the end of the name)
- start and end date
- model time step
- model levels
- number of cores to run on
- where to find the input files
- where to archive the output
- control output of pilot files
- ...
When running UQAM style there are several more parameters to be set than in ECCC's forecast mode. These extra parameters all start with 'CLIMAT_...'.
General GEM parameters:
BACKEND_mach | Name of machine to run on → Keep set to ${TRUE_HOST} | |
BACKEND_time_mod | Requested job wallclock time in seconds | |
BACKEND_cm | Requested memory per MPI process -> gets adjusted automatically by the model scripts | |
GEM_ptopo | MPI(x*y) * OMP PEs topology (Syntax: MPIx x MPIy x OpenMP). Example: GEM_ptopo=8x4x2 uses 8 MPI tiles in x-direction, 4 MPI tiles in y-direction with OpenMP=2 for a total of 64 cores. You can set the OpenMP factor (last factor ) to 1 or 2. If there are enough resources you can also set it to 4. Keep in mind that the minimum number of grid points for a GEM tile is ~25: | |
GEM_exp | Current experiment name; Keep the '_YYYYMM' at the end. It will get replaced by the scripts with the current year/month! | |
GEM_anal | Full path of initial condition file. This file needs to match the start date of your simulation! | |
GEM_anclima | Full path of SST & sea ice fraction files minus the _YYYYMM at the end! | |
GEM_climato | Climatological file or directory | |
GEM_ozone | Full path of the ozone climatology file | |
GEM_geophy | Geophysical fields file; specify directory of file 'Gem_geophy.fst' This file should match your grid! | |
GEM_inrep | Working directory for driving data On CC machines this should be under ~/scratch/... | |
GEM_ovbin | Path to the model executables (up until but excluding 'build-${ORDENV_PLAT}') |
Extra parameters when running "UQAM style":
CLIMAT_startdate | Start date of simulation. Format: 'YYYY MM DD hh' This date must match the validity date of all the fields in the analysis file. Never change the startdate during a running simulation!!! | |
CLIMAT_enddate | End date of simulation. Format: 'YYYY MM DD hh' You can change this while the simulation is running. | |
CLIMAT_arch_mach | Archive machine (machine you are running on) so you can always set: CLIMAT_arch_mach=${TRUE_HOST} | |
CLIMAT_archdir | Archive directory on ${CLIMAT_arch_mach} | |
CLIMAT_interval | Number of months to run per one job | |
CLIMAT_outrep | Name of temporary output directory On CC machines this should be under ~/scratch/... (At least while this filesystem behaves well!) | |
CLIMAT_deltat | Model time step in seconds. Must match 'Step_dt' in file gem_setting.nml! | |
CLIMAT_etaname | Pre-defined hybrib model level set. See 'Climat_eta2preshyb' for possible settings. | |
CLIMAT_diagnos | 1: Calculate monthly means and variances | |
CLIMAT_update_ghg | 1: Update greenhouse gases yearly | |
CLIMAT_ghg_list | Greenhouse gas table | |
CLIMAT_nest_rept | LAM only: Path of lateral boundary conditions | |
CLIMAT_nest_exp | LAM only: Common base name of monthly files or directories in above directory; without the _YYYYMM | |
CLIMAT_out_anal | Output frequency (in # of model time steps) of initial condition files to be used to initialize other simulations | |
CLIMAT_out_pilot | Output frequency (in # of model time steps) of pilot files to be used to drive other simulations at the lateral boundaries | |
CLIMAT_pp_superjob | Use super jobs instead of submitting post processing directly |
gem_settings.nml
This file contains Fortran namelists which will be read by the model. This means you cannot put any comments inside the namelists, but only in between them!
This file is very sensitive to errors. Even a missing '.' can make the model crash and all you will get is a message saying that there is an error in a specific namelist and it is up to you to find this error.
The parameters set here determine:
- model grid
- model (and driving data) time step
- output file formats (monthly/daily/..., etiket)
- advection & diffusion
- spectral nudging
- physics (radiation/convection/surface/...) schemes
- ...
For more information have a look at an extract of RPN's wiki pages:
GEM_4.8.lts12 namelists
GEM_5.0.0 namelists
In climate mode the following parameters will be set automatically, according to certain parameters in your 'configexp.cfg':
- 'Step_runstrt_S' and 'Fcst_end_S' (according to start date and current month)
- 'hyb' and 'Grd_rcoef' (according to 'CLIMAT_etaname')
- Greenhouse gas concentrations: qcfc12, qcfc11, qch4, qn2o, qco2 (according to ${CLIMAT_ghg_list})
outcfg.out
This file gets evaluated by the model. It does not tolerate any comments. As soon as the model finds only one character out of place it will ignore the rest of the file. It controls the RPN standard file output such:
- output grid (model/core/free)
- output frequency (in steps or hours)
- output levels (model/pressure)
- and which fields will be written
Have a look at the general description on our wiki: outcfg.out
A list of all model variables available for output can be found at the beginning of each model listing.
Note that this list varies depending on the schemes used!
A list of the most common fields can also be found under: RPN variable names
When running the UQAM version of GEM for output intervals ('steps=#,hour,<start,end,inc>';) the start and end hour (or step) will get updated automatically! Only for the first job in a run the start hour (or step) has to be set by the user!
You can find an example file further down on this page under: outcfg.out example
If you set one of the following 3 parameters in your configexp.dot file:
CLIMAT_out_anal
CLIMAT_out_pilot
CLIMAT_out_offline
additional lines will automatically get added to your outcfg.out file to output initial condition files (prefix=an), pilot files (prefix=nm) or fields to drive an offline model like SPS (prefix=ol).
outcfg.out example:
grid=1,free;
levels=1, eta, -1;
levels=2, pres,[1000.,975.,950.,925.,900.,850.,800.,700.,600.,500.,400.,300.,250.,200.,150.,100.,70.,50.,30.,20.,15.,10.];
levels=3, eta, 0;
steps=1,step,0;
steps=2,hour,<98592.,99312.,1>;
steps=3,hour,<98592.,99312.,3>;
steps=4,hour,<98592.,99312.,24>;
sortie_p([PR,PC,AE,RN,SN,FR,PE,N3,N7,RNAC,O7,MLTS,MLTR,TRAF,TDRA,RFAC] , grid, 1, levels, 1, steps, 2, avgacc)
sortie_p([NF,NFR,NFRL,NFRM,NFRH,NFRT,AS,AI,AV,AH,AR,AB,AU,N4,AD,AHF,AVF], grid, 1, levels, 1, steps, 3, avgacc)
sortie_p([IMAV,UVAV,ICRM,IIRM,IWVM] , grid, 1, levels, 1, steps, 3, average)
sortie_p([AL,SD,DN,FSNO,TN,GL,TM,I3,I4,I5,I6,I7,I8,I9,7S,3P,4P,5P] , grid, 1, levels, 1, steps, 3)
sortie_p([I0,I1,I2,J8,J9,TT2M,LMLT,LIFR,S5,S6,5P] , grid, 1, levels, 1, steps, 3)
sortie_p([T5] , grid, 1, levels, 3, steps, 4, min)
sortie_p([T9,UVMX] , grid, 1, levels, 3, steps, 4, max)
sortie ([P0,PN] , grid, 1, levels, 1, steps, 3)
sortie ([TT,UU,VV,HU,WW,GZ] , grid, 1, levels, 2, steps, 3)
sortie ([TT,UU,VV,HU,HR] , grid, 1, levels, 3, steps, 3)
sortie_p([SAND,CLAY,DPTH,SCOL,8L,Y2C,MF,MG,2V,LB,FU,E8,C9,H7,HT,D2,D5,LDEP] , grid, 1, levels, 1, steps, 1)
sortie ([ME] , grid, 1, levels, 1, steps, 1)
physics_input_table
The ‘physics_input_table’ contains a list of all your physics input fields. This includes all the geophysical fields (GEOP), fields to be read from the initial condition file (ANAL), fields read from the climatological file specified in ‘GEM_climato‘ (CLIM) as well as fields from the analyzed climatological file, ‘GEM_anclima’, like for ‘TM’ and ‘LG’ (INREP).
There is one row per field to be read with the following parameters:
in : name of field to be read
freq : frequency at which field will be read. 0: initial time step; 1: whenever it is found; 2: ???
search : shortcut of file to look for field. A list of files can be given.
Interp : horizontal interpolation type. Options: linear, near, cubic
timeint: linear, step, any, near
Examples:
in=VF; freq=0; search=GEOP; interp=near; levels= 1,26;
in=SD; freq=0; search=ANAL; interp=near; levels= 1,7;
in=TM; freq=0,1; search=ANAL,INREP; interp=linear; timeint=near
in=LG; freq=0,1; search=ANAL,INREP; interp=near; timeint=near
CLASS_input_table (only needed in GEM 5 when running CLASS)
This file is only needed when running GEM5 and up with CLASS. It contains almost all the parameter settings for CLASS. Usually this file does not need to get edited. You can just copy one from another GEM5 CLASS simulation.