1. Scripts

It could be useful to get a rough idea of the structure of the tests base, in order to be able to run only selected cases during the validation process.

  • The script script_all.sh is the main script that runs all the others. It successively calls :
    • script_pgd.sh, script_prep.sh, script_sea.sh, script_water.sh, script_flake.sh, script_isba.sh, script_teb.sh, script_csts.sh, script_offline.sh, script_cas_part.sh.
    • script_pgd.sh itself successively calls :
      script_pgd_grid.sh, script_pgd_physio.sh, script_pgd_ecoclimap.sh.
      => to run only one of these main categories, it’s possible to comment the other calls in script_all.sh.
  • Main modifications of namelist OPTIONS.nam_000 are done directly in previous scripts. But, for some cases that need large transformations (NAM_DATA_... in PGD step, NAM_PREP_... in PREP step), external scripts lying on command “sed” are written:
    • stored in TESTS/PGD :
      • make_eco_tiles.sh, make_eco_unif.sh => NAM_FRAC & NAM_COVER
      • make_isba_unif.sh, make_isba_mireille.sh, make_isba_greg.sh, make_isba_adrien_all.sh, make_isba_adrien_vgt.sh, make_isba_adrien_lai.sh, make_isba_adrien_veg.sh, make_isba_adrien_z0.sh, make_isba_adrien_h_tree.sh, maks_isba_adrien_rsmin.sh, maks_isba_adrien_dg.sh, makd_isba_adrien_diff_rootfrac.sh, make_isba_adrien_dif_rootdepth.sh, make_isba_adrien_diff_root_ext.sh => NAM_DATA_ISBA
      • make_teb_unif1.sh, make_teb_unif2.sh, make_teb_unif3.sh, make_teb_greg.sh, make_teb_cecile.sh => NAM_DATA_TEB
      • make_bem_unif1.sh, make_bem_unif2.sh => NAM_DATA_BEM
      • make_garden_unif1.sh, make_garden_unif2.sh, make_greenroof_unif1.sh, make_greenroof_unif2.sh => NAM_DATA_TEB_GARDEN & NAM_DATA_TEB_GREENROOF
    • stored in TESTS/PREP:
      • make_prep_unif.sh => NAM_PREP_SURF_ATM
      • make_prep_isba_unif.sh, make_prep_isba_tg_file.sh, make_prep_isba_wg_file.sh, make_prep_isba_data.sh, make_prep_isba_data_netcdf.sh, make_prep_isba_snow_unif.sh, make_prep_isba_snow_ideal.sh => NAM_PREP_ISBA & NAM_PREP_ISBA_SNOW
      • make_prep_teb_unif.sh, make_prep_teb_ts_file.sh, make_prep_teb_ws_file.sh, make_prep_teb_snow_unif.sh => NAM_PREP_TEB & NAM_PREP_TEB_SNOW
      • make_prep_gd_gr_unif.sh, make_prep_gd_gr_tg_file.sh, make_prep_gd_gr_wg_file.sh, make_prep_gd_gr_data.sh, make_prep_gd_gr_snow_unif.sh => NAM_PREP_TEB_GARDEN & NAM_PREP_TEB_GREENROOF & NAM_PREP_GARDEN_SNOW & NAM_PREP_GREENROOF_SNOW
      • make_prep_flake_unif.sh => NAM_PREP_FLAKE
  • Each test case is given a specific name, inside the scripts, and this name is used for and in the output files, to identify the case.
  • Some common scripts are used for the comparison of results, for all test cases :
    script_exec.sh, script_exec_omp_pgd.sh, script_exec_parall.sh, script_exec_restart.sh, script_exec_restart_parall.sh.
    • script_exec.sh is the basis execution and comparison script :
      • it runs pgd, prep, offline for the new version
      • it moves output netcdf files into RES_NEW directory
      • it adapts current namelist OPTIONS.nam for the old version
      • it runs pgd, prep, offline for the old version
      • it moves ouput netcdf files into RES_OLD directory
      • it goes into TESTS/PYTHON directory to run comp.py that compares files present in RES_NEW and RES_OLD directories
    • script_exec_omp_pgd.sh allows to test the OPEN-MP loops present in PGD step.
    • script_exec_parall.sh compares RES_NEW and RES_OLD in simple and 6 different parallel cases (YALG_MPI = LIN, ADJ, TILL, TILA, OPEN-MP, OPEN-MP + MPI)
    • script_exec_restart.sh and script_exec_restart_parall.sh do the same thing as script_exec.sh and script_exec_parall.sh but in a restart case.
  • Three additional common scripts are needed :
    script_base.sh, script_restart.sh, script_to_old.sh.
    • Script_to_old.sh allows to adapt namelists to the old case as namelists are introduced in the new one.
    • script_restart.sh and script_base.sh allow to replace PGD and PREP files by saved ones when doing successive restart or PREP with input pgd and prep files.

Also in this section