Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire

General information

SPS stands for Surface Prediction System. It was developed by ECCC. It executes only the surface routines from GEM, driving it with the following external driving data:

  • Surface pressure (P0)
  • Surface temperature (TT) (at 2 m but preferably on the lowest predictive model level)
  • Surface humidity (specific (HU) or relative (HR))  (at 2 m but preferably on the lowest predictive model level)
  • Surface u- and v-winds (UU and VV) (at 10 m but preferably on the lowest predictive model level)
  • Surface downward shortwave radiation (N4)
  • Surface downward longwave radiation (AD)

Like GEM it also need the following lower boundary conditions:

  • Sea surface temperature in Kelvin (TM)
  • Sea ice fraction (LG)

Other than GEM, SPS does not offer the possibility to write and read 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. See below under 'outcfg.out' which fields these are.

SPS 6.1.1 uses the same physics version as GEM 5.1.1.

...

In the above directory you need to have the following scripts:

Volet

SPS_launch
SPS_prepare_job.sh
setSPS_link_RUNMODpilots.sh
SPSset_link_pilotsRUNMOD.sh

r.run_in_parallel

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

You can copy the scripts from the following directory:


Volet
cp -p ~winger/SPS/v_6.1.1/Scripts_latest_version/* ~/SPS/v_6.1.1/Scripts


Executable

The following is a recipe to create your own executable:

a) Create directory for executable

...

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

Volet

Original version from RPN:
      git clone ~winger/SPS/v_6.1.1/Abs/SPS_UQAM_development/sps

Modified UQAM version including FLake & CLASS:
      git clone ~winger/SPS/v_6.1.1/Abs/SPS_UQAM_development_FLake_CLASS/sps

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

...

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 these file under your data space, something like:

...

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

Volet
abs_dir=$PWD

g) Change into 'build' directory:

...

Volet

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

configexp.cfg

Example file with variable explanations:

Volet
# Requested wall time; same as in GEM
SPS_walltime=86400
# Topology: MPI(x)xMPI(y)xOpenMP; same as in GEM but other than for GEM, OpenMPI is much a little more efficient!.
# SPS_topo=1x1x1

SPS_topo=2x2x4 4x2x2

# Experiment name; other than in GEM the YYYYMM will get added to the full name. So no need for the _YYYYMM.
SPS_exp=SPS_GLHBQC_0.0225d_1350x1080
# Base directory of executable; same as in GEM (but different executable)
SPS_bin=/home/winger/SPS/v_6.1.1/Abs/SPS_UQAM_development_FLake_CLASS/sps
# Start date of simulation; same as in GEM
SPS_startdate="2008 01 01 00"
# End date of simulation; same as in GEM
SPS_enddate="2008 02 02 00"
# Number of months to run per job; max 12 (recommended for speed); same as in GEM
SPS_interval=12

# Ozone climatology; same file as for GEM
SPS_CONST
=${AFSISIO}/datafiles/constants/ozoclim_phy45
# General climatology file; same file as for GEM
SPS_climato=${MODEL_DATA}/Climatology/MHEEP/clim_gemdm320_1080x540_v2_de_francois_withiceline_i8_glorys1v1.0_corr_EMIB
# Geophysical field file directory; almost same file as for GEM but
#    - 'ME' needs to be renamed to 'MF' and
#    - 'ME' of the driving data should be added and called 'MFBR'
SPS_geophy
=/pampa/roberge/Geophys/For_Offline${MODEL_DATA}/Example_data/SPS_example_data/Geophys_GLHBQC_0.0225d_1350x1080_USGS
# Initial condition file; similar file as for GEM: instead of atmospheric fields SPS upper driving data are needed
SPS_anal=/tornado/roberge/Output/GEM511/Cascades_CORDEX/CLASS/For_Offline/NAM-11m_GEM511_ERA5_CLASS_USGS_SN8_TOFD_SA2_10yrs/Analysis/NAM-11m_GEM511_ERA5_CLASS_USGS_SN8_TOFD_SA2_10yrs_20080101-00000000 ${MODEL_DATA}/Example_data/SPS_example_data/anal_NAM11_CLASS_20080101
# Directory containing upper SPS driving data. There needs to be one file per month
SPS_pil_dir
=/tornado/roberge/Output/GEM511/Cascades_CORDEX/CLASS/For_Offline/NAM-11m_GEM511_ERA5_CLASS_USGS_SN8_TOFD_SA2_10yrs/Offline_monthly ${MODEL_DATA}/Example_data/SPS_example_data/INREP
# Directory containing SST & SIC, same as for GEM
SPS_SST_dir
=${MODEL_DATA}/SST_SeaIce_degK/ERA5

# Temporary base input directory; same as for GEM
SPS_inrep=/dev/shm/${USER}/SPS_inrep
# Temporary base output directory; same as for GEM
SPS_outrep=/BIG3/winger/EXECDIR/stage
# Final archive directory
SPS_archdir=/BIG3/winger/SPS/Output/
${SPS_exp}

...

Volet
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:

...

    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:

Volet
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:

...

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

Volet
SPS_lance

4) Check progress

You can check the progress of an SPS simulation the same way as for GEM by executing 'u.tail' on the model listing under ~/listings/${TRUE_HOST}:

Volet
u.tail model_listing

Note that model listings will not - yet - get archived at the and of a job as done in GEM!

Restart / Continue a simulation

First, make sure all previous model output has been moved to the archive directory. To do that, go into your config file directory and execute the post pocessing script with:

Volet
bash SPS_pp_job.sh


Then resubmit the simulation from the last initial condition output you have with:


Volet
SPS_lance   -JOB_startdate YYYY MM DD hh


Where "YYYY MM DD hh" is the start date and hour of the job you want to start within the whole simulation, which is probably the date of your last initial condition output.