Vous regardez une version antérieure (v. /display/EDDSDLTEL/Run+SPS+6.1.1) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 28) afficher la version suivante »

General information

SPS 6.1.1 uses the same physics version as GEM 5.1.1.

I suggest you create yourself a directory under your home for your source code, scripts and config files, for example:

mkdir -p ~/SPS/v_6.1.1
cd ~/SPS/v_6.1.1
mkdir Abs Configs Scripts

Scripts

The name of the scripts directory:
    ~/SPS/v_6.1.1/Scripts
is mandatory!

In the above directory you need the following scripts:

SPS_launch
SPS_prepare_job.sh
set_RUNMOD.sh
SPS_link_pilots.sh

r.run_in_parallel

sps.sh
o.set_array.dot
task_setup.dot
task_setup.py
task_setup_cachegen

Executable

a) Create directory for executable

To create an executable first create yourself a directory under your home for the source code; preferably under ~/SPS/v_6.1.1/Abs and change into it, for example:

mkdir -p ~/SPS/v_6.1.1/Abs/My_Abs
cd
~/SPS/v_6.1.1/Abs/My_Abs

b) Get the basename of abs-directory

Get the basename (last part of your directory path) of your abs-directory for later use:

base_dir=$( basename $PWD )

'base_dir' should now be set to 'My_Abs'. You can verify it with:

            echo $base_dir

c) Clone the SPS Git repository you want to start from, for example:

git clone ~winger/SPS/v_6.1.1/Abs/SPS_UQAM_development/sps

Then change into 'sps' directory that came with the clone:

cd sps

d) Create working directories

So the object files, libraries and executables will not be under your home, create links for the directories 'build' and 'work'. Pick a place under which you want to keep the object files, libraries and executables under your data space, something like:

work_space=/your_data_space/SPS_WORK_DIR/Abs_6.1.1

Create the directories and the links (using ${base_dir} from above) :

mkdir -p ${work_space}/${base_dir}/build
mkdir -p ${work_space}/${base_dir}/work
ln -s ${work_space}/${base_dir}/build
ln -s ${work_space}/${base_dir}/work

e) Acquire a compiler

Only needed once per window/terminal. Same as for GEM 5.1.1.

module load compilers/intel/21.5-openmpi utils/cmake

The alias 'sps611' should work as well. But better only use it once per window because each time it is used it will add a directory to your $PATH.

f) Set the variable 'abs_dir'

Set the variable 'abs_dir' to the name of your executable directory, including the 'sps' directory (needed under e))

abs_dir=$PWD

g) Change into 'build' directory:

cd build

h) Create make files and dependencies

Only need once at the beginning and whenever you add any new routines or add include files or module "use" lines to an existing routine.

cmake   -DCOMPILER=intel   -DCMAKE_VERBOSE_MAKEFILE=ON    -DWORK_PREFIX=${abs_dir}/work    ${abs_dir}/project

i) Compile and create executable

make mainspsdm

You can also use n cores in parallel by adding the '-jn', for example to use 4 cores:

     make -j4 mainspsdm


Config files

You need the following config files:

configexp.cfg
sps.cfg
outcfg.out

dyn_input_table
physics_input_table
CLASS_input_table
   # Only needed when running CLASS

rpnstd_units.dict
rpnstd_units.rdict
sps.dict

outcfg.out

SPS does not have the possibility to write and continue from restart files. Therefore, at the end of each job all fields needed to start another simulation need to get outputted. The next job will then use the output of the previous job as initial conditions. To make the output of fields at the end of a job easier, steps=1 and steps=2 are now hard coded to:

steps=1 will automatically get set to the list of the last timestep of every month of the current job.
steps=2 will automatically get set to the last timestep of the current job.

ISBA

The following is a list of mandatory initial condition fields for ISBA:

sortie_p([SD,DN,I0,I1,I2,I3,I4,I5,I6,I7,I8,I9]  ...

    SD : VD=snow depth
    DN : VD=relative snow density
    I0 : VD=surface and soil temperatures
    I1 : VD=soil volumetric water contents
    I2 : VD=soil volumetric ice contents
    I3 : VD=water retained on the vegetation
    I4 : VD=water in the snow pack
    I5 : VD=snow mass
    I6 : VD=albedo of snow
    I7 : VD=sea ice temperature
    I8 : VD=sea ice thickness
    I9 : VD=glacier temperature

FLake

The following is a list of mandatory initial condition fields for FLake:

sortie_p([LIFV,LWFV,LIFR,LITH,LITP,LTRN,LMLD,LSF,LBTP,LWTP,LMLT] ...

CLASS

When running CLASS, in addition to the ISBA fields above one also needs to output the following fields:

sortie_p([CY,DR,SQAC,STAC,STSS,SK,TN,TE,R2,Q4,GR,M9] ...


sps.cfg

Driving with fields on staggered lowest predictive model levels

1) Lvl_typ_S = 'HS'     (HS= Hybride Staggered..     HU=  Hybride Uniforme (toutes les variables sur le meme niveau)

2) Lvl_list = MOMENTUM LEVEL ONLY                -   SPS will deduce the thermo level by itself

3) ip1a=-1
    
ip1at=-1

For (3) , By using =-1, you let SPS figure out the ip1 using the standard encoding.  (*Note that I don’t know what the “standard” is, I’m under the impression the ip1 encoding has changed with various GEM versions but perhaps it remained constant for HS levels).

If the ip1 encoding is not standard,  you can override the ip1s using these 2 keys. In all cases, standard or not, you can choose to specify these.

The actual values for the lowest prognostic level + ip1s will depend on the forcing model configuration. It will vary from one GEM system to another.

Example:

@levels_cfgs
Lvl_typ_S = 'HS'
Lvl_ptop_8 = 1000.0
Lvl_list = 0.997502
Lvl_rcoef = 3., 15.

@sps_cfgs
ip1a = -1


Driving with fields on diagnostic levels

Example:

@levels_cfgs
Lvl_typ_S = 'HU'
Lvl_ptop_8 = 1000.0
Lvl_list = -1

@sps_cfgs
zta =  2.0
zua = 10.0
ip1a = 93423264


Launching SPS simulation

1) First you need to set the SPS environment. You can do this with the alias

sps611

But better use it only once per window(!) because each time this alias is executed it will add a directory to your $PATH.

2) Go into the directory containing your config files:

cd ~/SPS/v_6.1.1/Configs/experiment_directory

3) Launch the simulation

To launch the simulation you just have to execute the command:

SPS_lance



  • Aucune étiquette