SPS 1.1.0 run

Un article de Informaticiens département des sciences de la Terre et l'atmosphère
Version depuis le 25 d'août 2015 à 20:25 par Michel (Discuter | changes)
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)

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
  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
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.,
/