GEM in climate mode (version 3.2.2)


See the major differences between version 3.2.1 and 3.2.2 for GEM in climate mode.

If you are a new user of GEM you might first want to read the general introduction to GEMDM.

You can also have a look at the summarized information about how to start running GEM in climate mode.

General help and support about models, libraries, tools and many other interesting information you can also find at RPN.COMM: COmmunity for Mesoscale Modeling.


Table of contents

  1. Differences between GEM and GEMCLIM (GEM in climate mode)
  2. Run GEM in climate mode version 3.2.2
  3. Climate variables in 'configexp.dot.cfg' and 'gemclim_settings.nml'
  4. New files and variables
  5. Variables/Directories that will be set/created automatically
  6. LAM in climate mode
  7. Saving nesting information
  8. Checklists


1. Differences between GEM and GEMCLIM (GEM in climate mode)

Version française

The big differences between climate and non-climate mode are 1) the automatic re-launching of a multi-month job, 2) the large amount of pre- and post-processing that will be done: automatic testing/setting of several of the model run-time variables, creation of part of the config files and production of a comprehensive set of diagnostics, following WCRP and AMIP2 guidelines. This implies that, if diagnostics are requested (strip_phy=1 and diagnos=1), the output variable/timesteps definition file 'outcfg.out' will be created automatically. But it is still possible to add extra output variables to it.

The model output is written directly into the directory ${EXECDIR}/output/current_last_step/tile instead of in ${EXECDIR}/${REPRUN}/tile to avoid unnecessary data moving, where 00-00 would denote the first tile. The 16-bit turbo compression algorithm is turned ON by default.

In climate mode the zonal-mean O3 climatolgy suggested by the AMIP2 experimental protocol is used. If you want to use another O3 climatolgy you need to call this file 'ozoclim' and have it in the directory in which you are when you launch the model. You will also have to provide apropriate litozon2.ftn and ozopnt.cdk source files and re-generate a new model executable with them.

Basically everything that was before called 'gem' or 'gemdm' is now called 'gemclim'. See section 2).

Under AIX 5.2, the parameter 'Step_rsti' from the 'gemclim_settings.nml' is ignored: The model
automatically resets 'step_rsti' internally to the maximum number of days that can be calculated in the given cpu time (parameter 't' in your 'configexp.dot.cfg'). It recalculates this value every simulated day. If the maximum of calculated days is reached the model submits another clone. ** Note that the LLAPI routines that are needed for this are broken at this time under AIX 5.3 **.

The physic tendencies get reset to zero every 'moyhr' hours. Because of that the output time step should always correspond to 'P_out_moyhr' in your 'gemclim_settings.nml', which is the case when the 'outcfg.out' is created automatically resp. when 'strip_phy=1;' in your 'configexp.dot.cfg'. The variables that will be reset can be found in the source file '
acclist.cdk'.

The pressure level under which there are no clouds considered to be is raised from 70 hPa to 100 hPa (set in 'nocld.cdk').

The minimum wind strength is changed from 1.0E-04 m2/s2 to 6.25 m2/s2 when using the Force-Restore surface scheme. This is the same value that ISBA is using (set in 'vamin.cdk').

The moving/treatment of the model output can be started during the run at every multiple of number of days specified in 'climat_cleanup' in your
'configexp.dot.cfg'.

The time series will be written in version 2.00 format. The differences to the time series written in non-climate mode are:

In case of problems you might find help in our little trouble shooting.



2. Run GEM in climate mode (GEMCLIM) version 3.2.2

Basically everything that was before called 'gem' or 'gemdm' is now called 'gemclim'.

a) Set the environment
To obtain the proper environment you must issue the following command for each new window session:

  . r.sm.dot gemclim 3.2.2

The variable $gemclim points now to the climate version 3.2.2 of GEM (GEMCLIM).

b) Set up to run GEMCLIM in batch mode
You need to have a directory in your $HOME called 'gemclim' containing a subdirectory for the machine on which you want to run the model. If you already have a directory called 'gem' simply link 'gemclim' to this one:

  ln -s ${HOME}/gem ${HOME}/gemclim

c) Create executables
Your '.exper_cour' should look like this:

RCSPATH="/usr/local/env/armnlib/modeles/GEMCLIM/v_3.2.2/RCS_DYN /usr/local/env/armnlib/modeles/GEMCLIM/v_3.2.2/RCS_PHY"
RCSBASE="v_3.2.2"

You create the executables the same way you would create them in non-climate mode. You only have to type

  make gemclim   

instead of 'make gem'.

d) Config files
You will have to change the name of the file 'gem_settings.nml' to 'gemclim_settings.nml'.

In the file 'configexp.dot.cfg' you have to set:

  model=gemclim;
  version=3.2.2;
  _job=gemclim;

e) Extra scripts
If you want to use any extra scripts you will now have to put them in a directory called:

${HOME}/modeles/GEMCLIM/v_3.2.2/scripts



3. Climate variables

'configexp.dot.cfg':

The variables written in red have to be initialized to run in climate mode, variables in violet only have to be set when diagnostics are required.



climat=1; Required for climate-mode GEM/GEMCLIM. Delfault: climat=0
exp: Experiment name. The current year and month are added/updated automatically at the start of each new job, depending also on the value of the variable ${interval}: The result is thus expname_YYYYMM resp. expname_YYYYMM-MM.
Note that if ${exp} contains an underscore everything after the last underscore will be replaced by the current date and that the maximum name length is 25 characters including the date.
xfer:
Note! In climate-mode this is the location, including the machine name and directory path, where the post-processing and diagnostics will be done, also known as ${dest_mach}. If the diagnostics are asked for ('diagnos=1;') the resulting files will be archived on ${arch_mach} in ${archdir}, otherwise they stay here. Format: xfer='machine:directory'
outrep:
Set this variable to a directory on ${mach} which is NOT under your ${EXECDIR}.  Because if you continue your run the old ${EXECDIR} will be erased after the next job has been launched.
absaddres:
Location of executables. Must be on launching machine.
mach:
Name of the machine where the model is to be run.
startdate: Day and time when the run starts: 'startdate="YYYY MM DD HH";' This date must match the validity date of the u-wind in the analysis file.
enddate: Day and time when the run should finish: 'enddate="YYYY MM DD HH";'
interval: Duration of one model job in months. Every interval, a new model job will be started with a call to Um_launch. There are usually several jobs in a particular experimental run. Default: interval=1
climat_1diagpermonth:
Has only an effect if interval > 1. If climat_1diagpermonth=1, the diagnostics will be done for each single month instead of for interval months.
climat_rsti: Days per model subjobs (clones). Since the time a model subjob can run is limited, more than one might have to be submitted per interval. Step_rsti in gemclim_settings.nml will be set automatically according to this value. If climat_rsti is not specified, Step_rsti will not be changed. Note that under AIX 5.2,this parameter has no effect since the model recalculates Step_rsti internally using the LLAPI interface routines at every simulated day and sets it to the maximum number of days that can be calculated in this model subjob.
climat_cleanup: Number of days per transfer. The default outcfg.out asks for a large volume of output files which may cause quota problems. To avoid this you can start the post-processing / file transfer before the model subjob is finished. climat_cleanup is the number of days after which the post-processing will be started. Step_cleanup in gemclim_settings.nml will be set automatically according to this value. If  climat_cleanup is not specified, Step_cleanup will not be changed.
climat_job_size: Sets the cpu time for several post-processing jobs. Possible values: small (default), i.e. 240x120 AMIP2 uniform grid; medium: i.e. 330x250 SGMIP grid; big: i.e. 720x360 mesoglobal grid.
 
cpu times for post processing and diagnostics using 8 cpu's on AIX:

post processing
diagnostics
small
1800 s
3600 s * interval
medium
2400 s
7200 s * interval
big
3600 s
10800 s * interval
The maximum cpu time is restricted to 10800 seconds.
 
For any other machine:
  post processing: cpu time from AIX times 8
  diagnostics: 28800 s
 
The cpu times can be changed in the script 'Climat_post_processing'.
climat_rm_ptend:
If this parametre is set to 1 and Climat_mdpr_clean  is called, it removes the 3D physics tendencies samples from the individual pr-files archives but only after their diagnostics have been calculated. Only UU, VV, WW, TT, HU, HR, GZ, T5, and T9 are kept.  Default: climat_rm_ptend=0
step_total: Number of timesteps per model subjob. Calculated automatically.
deltat: Size of the timestep in seconds. Must be the same value as Cstv_dt_8 in gemclim_settings.nml, but is an integer.
etaname: This variable sets the models vertical configuration: 1) The hybrid level distribution, 2) the pressure of the top model level. It also determines 3) the output pressure levels in outcfg.out and 4) the levels for which radiation is done (i.e. P_rad_nivl in gemclim_settings.nml). All of these etaname variables are set by the script Climat_eta2preshyb, i.e. with etaname=lh53t10; you define 53 hybrid levels with a top at 10 hPa. At the moment the following options aree defined: lh28t10, lh40t2, lh42t1, lh50t5, lh50t5b, lh53t10, lh53t10b, lh60t2, lh60t2b, lh70tp1, lh80tp1, lh58tp10. The default is lh40t2. To use a new vertical configuration, simply add it to your copy of the script Climat_eta2preshyb.
strip_phy: When strip_phy=1,  the Climat_strip_phy script will be called to do the first part of the post-processing and the dm-, dp- and pm- output files will be reorganized in just two files per time step, md- and pr-, standing for model level data and pressure level data. All of the multi-level pm- variables will be interpolated to pressure levels and written to the pr- files. If you want to run the full diagnostics you have to set "strip_phy=1"
diagnos: When diagnos=1, Climat_lancer_diag will be called to perform standard diagnostics, i.e. monthly means, variances, timeseries, etc.. If you want to run the full diagnostics you have to set "diagnos=1".
climat_masks:
The diagnostics need the non-filtered topography (ME) and the land-sea mask (MG) in the final resolution. These two fields are usually saved in the md-sample files. Otherwise, they have to be in ~/gem/ls-masks under the names me_${climat_masks} and mg_${climat_masks}, respectively. Furthermore, if splitout or window are set, these files have to have the suffixes: _hi and _lo, meaning there will then be two me- and two mg-files.
zoncal:  When zoncal=1 and diagnos=1, zonal averages will be calculated as well. This parameter has no effect if the model is run in LAM mode.
climat_diag_cpus: If the diagnostics are performed on an multi-node AIX computer they will run in parallel OpenMP mode, using eight cpu's distributed over four diffenrent parts of the diagnostics:
 

a)
1-5
 cpu's to calculate the time series
default 4

b)
1-5
 cpu's to calculate means and variances of 3D fields default 2

c)
1-2
 cpu's to calculate covariances of certain fields default 1

d)
1
 cpu to calculate means and variances of 2D fields default 1
 
The number of cpu's used per part a) - d) of the diagnostics can be set with climat_diag_cpus: climat_diag_cpus="a b c d", the default is climat_diag_cpus="4 2 1 1".
Note that the total numbers of cpu's on an multi-node AIX computer must be eight.
fularcharch_mach,
archdir
When fularch=oui (and ${diagnos}=1 and ${strip_phy}=1), the md-, pr-files, the diagnostics, and a restart file will be archived on ${arch_mach} (default 'pollux') in the directory ${archdir} (default '.'). If you want to run the full diagnostics you set these three parameters to avoid an overflow in your post-processing directory.
save_restart:
When save_restart=1 the restart files will be archived on ${arch_mach} in the directory ${archdir} even if ${diagnos}=0 and/or ${strip_phy}=0.
clean: When clean=1, original files will be erased after having been archived.
gaussout: When gaussout != 0, defines the number of grids points in the x- and y-direction for the interpolation of any global grid to a gaussian grid. The first three decimals account for the x-  and the last three decimals for the y-direction. I.e. if gaussout="240120"; the grid will be interpolated to a gaussian 240x120 grid.
The default value is 0, but setting gaussout=1 requests interpolation to 192x96 gaussian grids.
rotate
When rotate != 0, vector components are rotated to geographical references so that (UU,VV) is the actual geographically oriented vector wind at the model grid points rather than the model wind. The same holds for the other vectors in the output samples. With this approach no interpolation is required to produce the full set of climate-mode diagnosticsThe rotate and gaussout options are mutually exclusive, but the user must define one of them if strip_phy is requested. In addition, rotate is automatically set for all of the limited-area type of output grids such as LAM model output and for hi-resolution windows when either of splitout or window are non zero.
Again, the default value is 0.
splitout: Only used with global variable resolution grids. In that case, when splitout=1, the high-resolution core area will be saved in files with the suffix _hi. Vector components will be rotated in that area. Meanwhile, the global grid data will be either interpolated to uniform gaussian grids according to ${gaussout} or rotated according to ${rotate}, and saved in another set of files with suffix _lo.
window: Similar to splitout but for any model grid configuration. Cuts out a window and treats it as high resolution area. The full grid is still treated following the values of the ${rotate} (i.e. rotated vectors) and ${gaussout} (interpolated gaussian grids). Usage: window="lon1 lon2 lat1 lat2", where lon1, lon2 and lat1, lat2 are the left, right and lower, upper grid indices, respectively.
climat_llwindow:
Extracts any region with 'r.diag llagg'. All md- and pr-files for this region are saved and archived in an extra file called 'gemdm_${exp}_ll${suffix}.ca'. The diagnostics for this region are not called. Example: climat_llwindow="=-lon #lon =-lat #lat =-kind 1 L =-i lat_grid_size_in_degrees =-j lon_grid_size_in_degrees =-b lat_southwest_corner =-c lon_southwest_corner ". The parameters are the ones used by 'r.diag llagg'. See 'r.diag llagg' for more information.
list_mach: All of the listings for one job will be archived and packed in a zip-file at the end of a job. By default they will be archived on ${arch_mach} in ${archdir}/${exp}_listings.zip. But you can also archive them on another machine by specifying list_mach to the machine name on which you want the listings to be saved. They will than be archived on ${list_mach} in ${HOME}/listings/${list_mach}/${exp}_listings.zip. If your ${arch_mach} is 'cfs' you will have to set 'list_mach' to another machine.
save_anal: It is possible to save analysis files during the run. Usage: save_anal="year month increment"; an analysis file will be saved at the end of month in year and then every 'increment' months. If no 'increment' is specified an analysis file will only be saved once. If save_anal is set, 'Climat_prepare_job' sets 'anal_step' to the time step an analysis file will be saved; Climat_save_analysis saves the analysis file and puts it on 'arch_mach' in 'arch_dir'.
update_ghg: If 'update_ghg=1' the values for the GHG's (CO2, N2O, CH4, CFC11, CFC12) will be updated in 'gemclim_settings.nml' according to table $gemclim/dfiles/greenhouse_gases.dat. The default is 0.
Note! This feature is only available if P_rad_schm_S='cccmarad' in 'gemclim_settings.nml'.

'gemclim_settings.nml':


in namelist 'gem_cfgs':

Init_balgm_L = .false. No initialization, as it is useless in climate mode.
Schm_hdlast_L = .true. (Optional/Used for AMIP2)  Horizontal diffusion after the physics.
Schm_psadj_L = .true. Surface pressure adjustment is activated. This means that at every time step, the horizontal integral of pi' at the surface is restored to its previous time step value. In hydrostatic mode, ln(p) and ln(pi_s/z_s) are also corrected.
Althought in LAM mode this parameter has always to be set to false.
Out_ndigits = 8 Minimum of digits used to represent output units. Required by the diagnostics scripts.
Out_unit_S = 'P' Output names will include current steps rather than current dates and will end with a 'p'. Required by the diagnostics.
Out_nbitg = 16 Packing factor used for all variables except for those defined in Out_xnbits_s. Please do not use anything smaller as it causes irreparable degradation of the diagnostics.


in namelist 'physics':
P_clim_clima_L = .true. You will run in climate mode.
P_clim_ininc_L = .true. To define physics surface forcing increments at the start of an experiement and at 0Z every 15th day of each month following that. These increments are applied by the physics package every day at 12Z in climate mode to simulate the annual cycle evolution of certain variables. Examples of affected variables are the sea surface tempratures and sea ice percentage coverage.
P_out_moyhr: 3D physics variables time averaging period (in units of hours). This value is also used to define all of the other diagnostic variable saving intervals in 'outcfg.out'. Note that this implies that all of the physic accumulators will be reset to zero every  ${P_out_moyhr} hours. 

Return to table of contents

4. Files and variables you need to run GEM in climate mode:


Return to table of contents

5. Variables/Directories that will be set/created automatically

When 'strip_phy=1;', the file 'outcfg.out' is created automatically for the very first month. For continuing jobs, the first and last output time step of 'steps' will always be updated, and if the saving of an analysis file is required, a few variables will be added.


'gemclim_settings.nml':


'configexp.dot.cfg':

Return to table of contents




6. LAM in climate mode:

Variables you have to take care of:
'configexp.dot.cfg':

lam=1; You will run in LAM mode.
lam_nest_exp: Name of the first experiment from which the pilot information files will be used, i.e. pilot01_197801. 'lam_nest_exp' must contain a name and the year and month in the form: name_YYYYMM.
Year and month will later be updated automatically.
lam_nest_rept: Machine name and directory path with pilot information files specified by 'lam_nest_exp'. The machine name is optional. Syntax: lam_nest_rept="machine:path";
inrep:  Working directory path for the entry on the launching machine. The pilot information files will be unpacked there and the bm-files will be created in a subdirectory . 


'gemclim_settings.nml':
Pil_nesdt:
Time interval between two nesting information files in seconds. The default is 10800.
Pil_allin1_L: If set to .true. only one bm-file per time step will be created no matter how many cpu's are used. Just for the first time step one bm-file for each cpu ill be created. The default is .true..
Pil_xskip: Number of points to skip in x-directon while creating the pilot arrays in the entry when Pil_allin1_L = .true.. The model will then interpolate to the full gird. The idea is to speed up the entry which is running on one cpu and let the model do the interpolation on multiple cpu's. The default is 2.
Pil_yskip: Number of points to skip in y-direction while creating the pilot arrays in the entry when Pil_allin1_L = .true.. The model will then interpolate to the full gird. The default is 2.
Pil_toptt_L: If set to .true. the top level temperature is completely specified from nesting information. The default is .true..
Pil_0ptend_L:  If set to .true. the physics tendencies will be zeroed out in blending area. The default is .true..

Variables the scripts take care of in:
'gemclim_settings.nml':
Pil_runstrt_S: Validity date of the first nesting information file that will be read for the current interval. At the start of the run it must be the validity date of the analysis file.
Format: YYYYMMDD.HHMMSS
Pil_runend_S: Validity date of the last nesting information file that will be read for the current interval.
Format: YYYYMMDD.HHMMSS



Return to table of contents




7. Saving pilot information files

You can decide to save pilot information files. In that case, you get one file per pilhr. All of the files for one 'interval' will be packed in a cmcarc-file named 'nest_info_${exp}_part#.ca' (#=1,2,...). You might get more than one part because the maximum files size is restricted to 2 GBytes.
Variables you have to take care of:
'configexp.dot.cfg':
pilout=1; You will save pilot information files.
pil_type: Possible values are "pm" or "dp". Denotes the source for the pilot information: Model level data "pm" or pressure level data "dp". If "pm" is chosen, variables 2T,UP,VP,UH,2P will be saved on model levels and GZ at the surface otherwise TT,UU,VV,HU,GZ will be saved on pressure levels. (default: pm).
pilhr: Saving interval in hours for pilot files (default: 3).
pil_dir: Syntax: pil_dir=${pil_mach}:${pil_rept};
    pil_mach: Archiving machine for pilot information files (default ${arch_mach}). Must never be cfs!
    pil_rept:  Archiving directory for pilot information files (default: ${archdir}).
pil_window:  Since the pilot information files might be quite big, it is possible to save only a window.
Usage: pil_window="lon1 lon2 lat1 lat2"; Where lon1, lon2 and lat1, lat2 are the left, right and lower, upper grid indices, respectively.


Return to table of contents


8. Checklists

Certain parameters in the namelists in the file 'gemclim_settings.nml' depend on each other. So if you change one of them, you might want to change/adjust some others as well.

Change resolution

Check:

Change time step

Check:




Return to table of contents



Author: Katja Winger
Last update: June 2007