SPS 1.1.0 run

Un article de Informaticiens département des sciences de la Terre et l'atmosphère
Aller à: navigation, charcher

SPS 1.1.0 based on GEM 4.6.2, physics 5.6.8, INTEL fortran 14.0.2/14.0.4

building the SPS 1.1.0 executable

NOTE: environment variable storage_model MUST BE DEFINED

NEW WAY

#     (uses github for public code)
git clone https://github.com/mfvalin/SPS my_sps
cd my_sps
. ./.setenv.dot
rde mklink             # links to compile sps
rde mkdep              # create Makefile and dependencies
make obj               # compile
make sps               # build executable
linkit                 # links to run sps
sps.ksh                # run sps (quick test run)
#
# time for a stronger test run
#
mkdir some_demo_run_directory
cp DemoConfigs/* some_demo_run_directory
cp sps_Linux_x86-64.Abs some_demo_run_directory
#
cd some_demo_run_directory
vi configexp.cfg   # edit exper_archive=... to point it to an existing directory
#
# configexp.cfg is set for a 3 month run on 2 processors
#
. s.ssmuse.dot sps/1.1.0.2
run_sps.sh 2>&1 | tee run.txt
#

OLD WAY (HISTORICAL, do not use)

(legacy, vanilla, deprecated version)

. s.ssmuse.dot sps_beta_dev       # acquire software
mkdir my_sps_dir            # where i want to build
u.get_sps_beta my_sps_dir   # get the source
cd my_sps_dir
. ./.setenv.dot
ulimit -s unlimited
ulimit -m unlimited
ulimit -d unlimited
rde mklink             # links to compile sps
rde mkdep              # create Makefile and dependencies
make obj               # compile
make sps               # build executable
linkit                 # links to run sps
sps.ksh                # run sps

making runs with the SPS 1.1.0 executable

create a directory for the configuration
mkdir SPS_run_directory
cd SPS_run_directory
. s.ssmuse.dot sps/1.1.0.2

1 - get necessary files  (sample configuration files will be found in the DemoConfigs directory of th edistribution)
 configexp.cfg         (experiment configuration file)
 sps.cfg               (namelists read by sps executable)
 sps.dict              (special namelists for sps, normally used as is)
 outcfg.out            (output configuration)
 sps_Linux_x86-64.Abs  (sps executable, see above to build it)
 physics_input_table   (table describing physics variables and their interpolation rules)
 dyn_input_table       (table describing dynamics variables and their interpolation rules)

2 - edit config files appropriately (do not forget to set dates in configexp.cfg)

3 - run_sps.sh
typical contents of configexp.cfg
 exper='experiment_001'                                            # name of the experiment
 #   UM_EXEC_climato, UM_EXEC_geophy, UM_EXEC_inrep, UM_EXEC_anal should be left AS IS
 UM_EXEC_climato=Data/Input/climato
 UM_EXEC_geophy=Data/Input/
 UM_EXEC_inrep=Data/Input/inrep
 UM_EXEC_anal=Data/Input/anal
 #
 #UM_EXEC_driving_data=$(pwd -P)/driving_data
 SPS_phy_intable=$(pwd -P)/physics_input_table
 SPS_dyn_intable=$(pwd -P)/dyn_input_table
 #
 exper_archive=${HOME}/ARCHIVE                                   # where output is to be sent by post_sps.sh
 #
 exper_climato="${HOME}/project/SPS/Data/Input/climato"          # climatology file
 exper_geophy="${HOME}/project/SPS/Data/Input/Gem_geophy.fst"    # geophysical fields file
 #
 # anal_*_YYYYMMDD or anal_*_YYYYMMDD_yyy   (expected names for initial conditions files)
 #
 exper_anal0=${HOME}/project/SPS_DATA/ANAL/anal_WestNA_0.25_ERA_dyn_v12_PRSF_19790101  # initial conditions file
 exper_anal1=$(pwd -P)/Data_disk/Input/inrep/INI                   # directory where initial conditions can be found
 exper_anal2=${exper_archive}/${exper}                             # directory where initial conditions can be found
 #
 exper_depot1=${MODEL_DATA}/Offline_driving/ERA-Interim_0.75/6h_Analysis   # where driving data can be found by pre_sps.sh
 exper_depot2=${MODEL_DATA}/SST_SeaIce/ERA-Interim_0.75deg                 # where driving data can be found by pre_sps.sh
 #
 # date format : YYYYMMDD
 exper_start_date=19790101                                         # start date (MUST start on the first day of a month)
 exper_end_date=19800104                                           # last date (ignored if > exper_fold_date)
 extra_time=00:00:00                                               # added to end_date
 exper_fold_date=19850201                                          # "back to the past" date (ignored if > exper_end_date)
 #
 #
 exper_delta='1month'                                              # MUST be 1month for now
 exper_deltat=21600                                                # 6 hour time step
 exper_cpu_config='--verbosity=error --ptopo=4x4x1'                # configuration for sps.ksh
 exper_cpu_config2='--verbosity=error --ptopo=3x3x1'               # alternate configuration for sps.ksh
 #
 # the following variables get read and adjusted by pre_sps.sh, run_sps.sh, and post_sps.sh
 #   exper_current_date    is the starting date for the current monthly step
 #   exper_current_year    is the current year number in this multi year integration (should start at 1)
 #                         if exper_current_year == 0 , no extension is used for outputs or initial conditions
 #   exper_cycle_year      is the number of years to run
 #
 exper_current_date='19790101'
 exper_cycle_year='2'
 exper_current_year='1'
example of physics_input_table for ISBA
in=MG;    freq=0; search=GEOP;      interp=near;  
in=LH;    freq=0; search=GEOP;      interp=linear;
in=Y7;    freq=0; search=GEOP;      interp=linear;
in=Y8;    freq=0; search=GEOP;      interp=linear;
in=Y9;    freq=0; search=GEOP;      interp=linear;
in=GA;    freq=0; search=GEOP;      interp=near;
in=ZP;    freq=0; search=GEOP;      interp=near;
in=VF;    freq=0; search=GEOP;      interp=near;     levels= 1,26; 
in=VG;    freq=0; search=GEOP;      interp=near;
in=ME;    freq=0; search=GEOP;      interp=near;
in=J1;    freq=0; search=GEOP;      interp=near;     levels= 1,3;
in=J2;    freq=0; search=GEOP;      interp=near;     levels= 1,3;
in=FSA;   freq=0; search=GEOP;      interp=linear;   levels= 1,4;
in=SLA;   freq=0; search=GEOP;      interp=linear;   levels= 1,4;
in=AL;    freq=0; search=GEOP,CLIM; interp=near;     timeint=any; #etk=NO SNOW

in=TSG;   freq=0; search=ANAL;      interp=linear;   levels= 1,8;
in=GLD;   freq=0; search=ANAL;      interp=linear;
in=GLF;   freq=0; search=ANAL;      interp=linear;
in=GVOL;  freq=0; search=ANAL;      interp=linear;
in=GVLT;  freq=0; search=ANAL;      interp=linear;
in=ITGL;  freq=0; search=ANAL;      interp=linear;   levels= 1,16;
in=TM;    freq=0,1; search=ANAL,INREP;      interp=linear;   timeint=linear
in=I0;    freq=0; search=ANAL;      interp=near;     levels= 1,2; 
in=I1;    freq=0; search=ANAL;      interp=near;     levels= 1,2;
in=I2;    freq=0; search=ANAL;      interp=near;     levels= 1,2;
in=I3;    freq=0; search=ANAL;      interp=near;
in=I4;    freq=0; search=ANAL;      interp=near;
in=I6;    freq=0; search=ANAL;      interp=near;
in=I7;    freq=0; search=ANAL;      interp=linear;   levels= 1,3;
in=I8;    freq=0; search=ANAL,CLIM; interp=near;     timeint=linear
in=I9;    freq=0; search=ANAL;      interp=linear;   levels= 1,2;
in=DN;    freq=0; search=ANAL;      interp=near;
in=SD;    freq=0; search=ANAL,CLIM; interp=near;     levels= 1,5; timeint=linear
in=LG;    freq=0,1; search=ANAL,INREP; interp=near;     timeint=linear

in=HS;    freq=0; search=ANAL,CLIM; interp=near;     timeint=linear
in=ICEL;  freq=0; search=ANAL,CLIM; interp=near;     timeint=linear
in=XA;    freq=0; search=ANAL;      interp=near;

in=AD;  freq=0,1; search=ANAL,INREP;     interp=linear;   timeint=linear
in=N4;  freq=0,1; search=ANAL,INREP;     interp=linear;   timeint=linear
in=PR; freq=0,1; search=ANAL,INREP;     interp=linear;   timeint=next

in=MF;   freq=0;   search=GEOP;      interp=linear;
in=BME;  freq=0;   search=GEOP;      interp=linear;   levels= 1,8;
in=BFR;  freq=0;   search=GEOP;      interp=linear;   levels= 1,8;
in=PRSF; freq=0;   search=GEOP;      interp=linear;   levels= 1,12;
in=GLNM; freq=0;   search=GEOP;      interp=linear;
example sps.cfg
version=100

@grid_cfgs
Grd_typ_S     = 'LU'
Grd_dx        =    0.25
Grd_dy          =    0.25
Grd_ni        =  144   
Grd_nj          =  115
Grd_iref      =   82   
Grd_jref        =   60
Grd_latr      =    0.0 
Grd_lonr        =  180.0
Grd_xlat1     =   57.5 
Grd_xlon1       = -130.
Grd_xlat2     =    0.  
Grd_xlon2       =  -40.

@time_cfgs
Step_runstrt_S = '19790101.000000'
Step_dt = 21600.
Step_gstat = 12
Step_bkup  = -1
Step_total = 124

@levels_cfgs
Lvl_typ_S = 'HU'
Lvl_ptop_8 = 10.0
Lvl_NoTopThL_L = .false.
Lvl_Tlift_L = .false.

@sps_cfgs
ip1a = 93423264
int_accu_S = 'CONST'
adapt_L = .FALSE.
lapserate = 0.0065
read_hu_L = .TRUE.
@

&physics_cfgs
schmsol = 'ISBA' ,

zta=2.0,
zua=10.0,
LIMSNODP  = .true.,
ICEMELT  = .true.,
/

SPS 5.8.3 based on GEM 4.8.3, physics 5.8.3, INTEL fortran 14.0.2/14.0.4

available on UQAM servers, availability on guillimin to follow soon

using SPS 5.8.3 (always necessary before any of the following actions)

. s.ssmuse.dot sps/5.8.3
make sure that ${HOME}/ARCHIVE points to archival space
NOTE: environment variable storage_model MUST BE DEFINED

DEMO SPS 5.8.3

 mkdir my_directory
 cd my_directory
 get_sps_demo_configs   # get a working set of config files
 run_sps.sh

sps will run with a demo configuration and data for 12 months (19790101 -> 19800101)

building the SPS 5.8.3 executable

mkdir my_directory
cd my_directory
ouv_exp_sps
rdemkdep
rdemklink 
make dep
make sps

the executable will be found at
build-linux26-x86-64/bin/intel1400/sps_Linux_x86-64.Abs

running SPS 5.8.3

same steps as the demo, but with your own config files pointing
to your driving data and probably your own executable