...
building the SPS 1.1.0 executable
Volet |
---|
NOTE: |
...
environment |
...
variable |
...
storage_model |
...
MUST |
...
BE |
...
DEFINED |
...
NEW WAY
Volet |
---|
# |
...
(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)
Volet |
---|
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
Making runs with the SPS 1.1.0 executable
...
Create a
...
directory
...
for
...
the
...
configuration
...
Volet |
---|
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
...
Volet |
---|
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
...
Volet |
---|
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
...
Volet |
---|
@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 Available on UQAM servers, availability on guillimin to follow soon
...
.
Using SPS 5.8.3 (always necessary before any of the following actions)
Volet |
---|
. |
...
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
Volet |
---|
...
mkdir |
...
my_directory |
...
cd |
...
my_directory |
...
get_sps_demo_ |
...
configs # |
...
get |
...
a |
...
working |
...
set |
...
of |
...
config |
...
files |
...
run_sps.sh |
...
sps SPS will run with a demo configuration and data for 12 months (19790101 -> 19800101)
...
Building the SPS 5.8.3 executable
Volet |
---|
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
...
.