SPS 1.1.0 run
Matières
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., /