diff --git a/LICENSE b/LICENSE index 6a4d8bd6..b2c0c6e7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021-2022 C2SM and other Processing Chain Developers. +Copyright (c) 2021-2023 C2SM and other Processing Chain Developers. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index e8b0bc9f..af7ff9b8 100644 --- a/README.md +++ b/README.md @@ -16,28 +16,29 @@ instruction for the installation. ### 1\. Install Miniconda -Install as user specific miniconda, e.g. on `/scratch` (enter `cd -$SCRATCH` and `pwd` at the command line to get to your personal scratch -directory on Daint). When the command prompt asks for installation -location, provide the path to your scratch and append `/miniconda3`. +Install as user specific Miniconda, e.g. on your `$HOME` directory, +which is the default location. -> **Note**: The default location would be on your `$HOME` directory, which -> may lead to memory issues. +> **Note**: Only conda itself should be installed in your `$HOME`. +> All environments should be stored in your `$PROJECT` directory, +> otherwise you risk filling up your `$HOME` directory. See below for instructions. -To install the latest miniconda, type: +To install the latest Miniconda, type: wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -Then, export `$PATH` to your conda installation: - - export PATH="$SCRATCH/miniconda3/bin:$PATH" +Further deails on Miniconda can be found on the [Miniconda documentation page](https://docs.conda.io/en/latest/miniconda.html). ### 2\. Create the Conda Environment Create a conda environment `proc-chain` with and install requirements: - conda env create -f env/environment.yml + conda env create --prefix $PROJECT/envs/proc-chain -f env/environment.yml + +To be able to activate your conda environment by simply using `conda activate proc-chain` instead of the full path, add the following to your `.bashrc`: + + export CONDA_ENVS_PATH=$PROJECT/envs Activate the environment (use "source activate" in case "conda activate" does not work): @@ -60,7 +61,7 @@ these files within your home directory: Once everything has been set up correctly according to the above steps, you just need to execute the following command to activate your -environment: +environment (if not done already): conda activate proc-chain @@ -69,7 +70,7 @@ line help to see the available arguments for the main script: python run_chain.py -h -To run the example cases with their standard jobs, please ensure +To run the test cases with their standard jobs, please ensure that you clone the Processing Chain to `$SCRATCH`, as input and output data are stored in subdirectories of the chain itself. @@ -78,62 +79,30 @@ output data are stored in subdirectories of the chain itself. > adapt the configuration file `config.py` in your case folder in > a way that output files are written to a specified folder on `$SCRATCH`. -For these test cases, the necessary input data can be obtained via -the following script (this may take some time): - - ./get_data.sh - -Furthermore, executables for COSMO-GHG and ICON are needed. For both COSMO-GHG and ICON, -a spack instance needs to be initialized first. Then, COSMO-GHG can be -installed: +For these test cases, you can use the Jenkins script - source /project/g110/spack/user/daint/spack/share/spack/setup-env.sh - spack installcosmo cosmo@empa-ghg%nvhpc cosmo_target=gpu +cppdycore - -For ICON, type: + ./jenkins/scripts/jenkins.sh - spack install icon@c2sm-master%nvhpc@21.3 icon_target=cpu +eccodes +ocean - -> **Note**: For further information about building ICON or building software -> with Spack in general, consider the -> [C2SM wiki page](https://wiki.c2sm.ethz.ch/MODELS/ICONIconModel) and the official -> [C2SM Spack Documentation](https://c2sm.github.io/spack-c2sm/QuickStart.html). +This script calls other scripts that are located in `jenkins/scripts/`. +They will +- activate the conda environment (if not done already) +- setup spack-c2sm +- download input data to `input/` +- build `int2lm`, `cosmo-ghg`, `icon` and `icon-art` +- test `cosmo-ghg`, `icon`, `icon-art-oem`, `icon-art-global` -Alternatively, you can use the following scripts: - - ./jenkins/scripts/build_cosmo-ghg.sh - -or - - ./jenkins/scripts/build_icon.sh - -Finally, to run the COSMO-GHG test case, type: +To run the test cases manually, type: +```bash + # COSMO-GHG python run_chain.py cosmo-ghg-11km-test 2015-01-01 0 24 - -> **Note**: Be sure to have spack initialized via -> `source /project/g110/spack/user/daint/spack/share/spack/setup-env.sh` -> before you run COSMO or ICON jobs. - -For ICON, type: - + # ICON python run_chain.py icon-test 2018-01-01 0 24 -j prepare_data icon - -Empa users can perform additional tests: - - python run_chain.py cosmo-art-mother-test cosmo-art-nested-test 2015-06-26 0 24 - -or: - - python run_chain.py icon-art-test 2018-01-01 0 24 -j prepare_data icon - -or: - + # ICON-ART (OEM) python run_chain.py icon-art-oem-test 2018-01-01 0 24 -j prepare_data oae icon - -or: - - python run_chain.py icon-art-oem-ensembles-test 2018-01-01 0 24 -j prepare_data oae icon + # ICON-ART (global) + python run_chain.py icon-art-global-test 2018-01-01 0 24 -j prepare_data oae icon +``` ## Documentation diff --git a/cases/carbosense/config.py b/cases/carbosense/config.py deleted file mode 100755 index b03edae8..00000000 --- a/cases/carbosense/config.py +++ /dev/null @@ -1,160 +0,0 @@ -import os - -# GENERAL SETTINGS =========================================================== -user = os.environ['USER'] -target = 'cosmo-ghg' -restart_step = 24 # hours -#subtarget = 'spinup' -#spinup = 6 - -compute_host = 'daint' -compute_queue = 'normal' # 'debug' -compute_account = 'em05' -constraint = 'gpu' # 'mc' - -if constraint == 'gpu': - ntasks_per_node = 12 - mpich_cuda = ( - 'export MPICH_RDMA_ENABLED_CUDA=1\n' - 'export MPICH_G2G_PIPELINE=256\n' - 'export CRAY_CUDA_MPS=1\n' - 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cray/nvidia/default/lib64' - ) -elif constraint == 'mc': - ntasks_per_node = 36 - mpich_cuda = '' - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() - -# Root directory of the working space of the chain -work_root = os.environ['SCRATCH'] + "/processing_chain" - -# Directory where executables are stored -exe_dir = "/store/empa/em05/executables" - -# PRE-PROCESSING ============================================================= -input_root = '/store/empa/em05/mjaehn/Carbosense/input' - -# METEO ---------------------------------------------------------------------- -meteo_dir = '/store/empa/em05' # will use '/store/mch/msopr/owm/COSMO-7' instead -meteo_prefix = "laf" -meteo_inc = 1 - -# ICBC ----------------------------------------------------------------------- -input_root_cams = '/store/empa/em05/dbrunner/carbosense' -cams_dir_orig = os.path.join(input_root_cams, 'icbc') # Input directory -cams_dir_proc = os.path.join(input_root_cams, 'icbc', - 'processed') # Output directory -year = 2020 -if year >= 2020: - cams_prefix1 = 'cams_h9sp' - cams_prefix2 = 'sfc_h9sp' -elif year == 2019: - cams_prefix1 = 'cams_gznv' - cams_prefix2 = 'sfc_gznv' -else: - cams_prefix1 = 'cams_ghqy' - cams_prefix2 = 'sfc_ghqy' -cams_parameters = [{ - 'suffix': 'cams_co2', - 'species': ['CO2', 'CO', 'CH4'], - 'inc': 3, - 'prefix1': cams_prefix1, - 'prefix2': cams_prefix2, - 'lev': 137, -}] - -# OBS_NUDGING ---------------------------------------------------------------- -obs_nudging_dir = '/store/empa/em05/obs_nudging_cosmo' -obs_nudging_prefixes = [ - 'cdfin_amdar', 'cdfin_ship', 'cdfin_synop', 'cdfin_temp', 'cdfin_wprof' -] -obs_nudging_date_format = "-%Y%m%d000000" - -# OAE ------------------------------------------------------------------------ -# Online anthropogenic emissions -oae_dir = os.path.join(input_root, 'oae') -oae_gridded_emissions_nc = 'emis_merged_CO2_CO_CH4_X_1km.nc' -oae_vertical_profiles_nc = 'vertical_profiles.nc' -oae_hourofday_nc = 'hourofday.nc' -oae_hourofyear_nc = 'hourofyear.nc' -oae_dayofweek_nc = 'dayofweek.nc' -oae_monthofyear_nc = 'monthofyear.nc' - -# ONLINE_VPRM ---------------------------------------------------------------- -# MODIS and vegetation data for online VPRM -online_vprm_dir = os.path.join(input_root, 'online_vprm') -modis_filename = 'MODIS_sur_refl_COSMO_Carbosense_1km_20200401-20200930.nc' -vegetation_filename = 'VPRM_VegClasses_COSMO1_Carbosense.nc' - -# INT2LM --------------------------------------------------------------------- -# Extpar-file -int2lm_extpar_dir = os.path.join(input_root, 'extpar') -int2lm_extpar_file = 'extpar_empa_cosmo1_aster_opt.nc' - -# Executable -int2lm_bin = os.path.join(exe_dir, "int2lm_gnu_208d68e_20201005") - -# Namelist and slurm runscript templates -int2lm_namelist = '%s/cases/%s/int2lm_INPUT.cfg' % (chain_src_dir, casename) -int2lm_runjob = '%s/cases/%s/int2lm_runjob.cfg' % (chain_src_dir, casename) - -# Walltimes -if compute_queue == "normal": - int2lm_walltime = "10:00:00" -elif compute_queue == "debug": - int2lm_walltime = "00:30:00" -else: - logging.error("Unset queue name: %s" % compute_queue) - sys.exit(1) - -# Domain decomposition -int2lm_nodes = 2 -int2lm_ntasks_per_node = 12 -int2lm_np_x = 6 -int2lm_np_y = 4 -int2lm_np_tot = int2lm_np_x * int2lm_np_y - -# POST_INT2LM ---------------------------------------------------------------- -# Fields that are used as initial conditions -post_int2lm_species = ['CO2_BG', 'CO_BG', 'CH4_BG'] - -# SIMULATION ================================================================= -# COSMO ---------------------------------------------------------------------- -# Executable -cosmo_bin = os.path.join(exe_dir, "cosmo-org-ghg_pgi_e5e9e5ae_20201125") - -# Namelists and slurm runscript templates -cosmo_namelist = '%s/cases/%s/cosmo_INPUT_' % (chain_src_dir, casename) -cosmo_runjob = '%s/cases/%s/cosmo_runjob.cfg' % (chain_src_dir, casename) - -# Walltimes and domain decomposition -if compute_queue == "normal": - cosmo_walltime = "03:00:00" - cosmo_np_x = 24 - cosmo_np_y = 18 -elif compute_queue == "debug": - cosmo_walltime = "00:30:00" - cosmo_np_x = 4 - cosmo_np_y = 3 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) - -# Total node count -cosmo_np_io = 0 -cosmo_np_tot = int(cosmo_np_x * cosmo_np_y / ntasks_per_node) + cosmo_np_io - -# POST-PROCESSING ============================================================ -# REDUCE_OUTPUT -------------------------------------------------------------- -convert_gas = True -output_levels = 20 - -# POST_COSMO ----------------------------------------------------------------- -output_root = os.path.join("/store/empa/em05/", user, - "processing_chain_output", casename) diff --git a/cases/carbosense/cosmo_INPUT_AF.cfg b/cases/carbosense/cosmo_INPUT_AF.cfg deleted file mode 100644 index b5815218..00000000 --- a/cases/carbosense/cosmo_INPUT_AF.cfg +++ /dev/null @@ -1,4 +0,0 @@ -&AFCTL - hinc_e=1.0, !time increment for read of emissions - hinc_f=1.0, !time increment for read of fluxes -/END diff --git a/cases/carbosense/cosmo_INPUT_ASS.cfg b/cases/carbosense/cosmo_INPUT_ASS.cfg deleted file mode 100644 index 5f27ff65..00000000 --- a/cases/carbosense/cosmo_INPUT_ASS.cfg +++ /dev/null @@ -1,55 +0,0 @@ -&NUDGING - lnudge = .TRUE., - lverif = .FALSE., - mruntyp = 2, - lverpas = .TRUE., - ycdfdir = '{cfg.cosmo_input}/obs_nudging', - hnudgsta = {cfg.hstart}, - hnudgend = {cfg.hstop}, - tconbox = 30.0, - hversta = 0.0, - hverend = 0.0, - khumbal = 100, - ntpscor = 1, - ptpstop = 400.0, - luvgcor = .TRUE., - ltipol = .TRUE., tipolmx = 3.0, wtukrsa = 3.0, wtukrse = 1.0, - ltipsu = .TRUE., tipmxsu = 1.0, wtuksua = 1.5, wtuksue = 0.5, - wtukara = 1.5, wtukare = 0.5, - msprpar = 1, - msprpsu = 0, - gnudg = .0006, .0006, .0006, .0006, - gnudgsu = .0006, .0006, .0000, .0006, - gnudgar = .0006, .0000, .0006, .0000, - vcorls = .333 , .333 , .04 , .04 , vcutof = 0.75, 0.75, 1.0 , 1.0 , - vcorlsu = .013 , .013 , .002 , .00001, vcutosu = 0.75, 0.75, 4.0 , 0.001 , - vcsnisu = 2500., 2500., 9. , 9. , - rhvfac = 1.0 , 0.0 , 0.83, 0.83, - rhinfl = 0., 70., 0., 0., rhtfac = 1.3 , 1.43 , 1.3 , 1.3 , - rhiflsu = 70., 70., 100., 70., rhtfsu = 1.0 , 1.43 , 1.0 , 1.0 , - fnondiv = 0.8 , cnondiv = 0.1 , cutofr = 3.5 , 3.5 , 3.5 , 3.5 , - tnondiv = 1.1 , cutofsu = 2.0 , 3.5 , 2.0 , 2.0 , - topobs = 849., 1099., 799., 699., - botmod = 1099., 1099., 1099., 899., - lscadj = .TRUE..TRUE..TRUE.,.FALSE., - dtqc = 720., qcvf = 5.0 , 1.0 ,10.0 , 0.0 , - qcc = 0., 500., 0., .7, - qccsu = 12., 500., 12., .7, - lsynop = .TRUE., - laircf = .TRUE., - ldribu = .TRUE., - ltemp = .TRUE., - lpilot = .TRUE., - lcd137 = .FALSE., - lcd132 = .TRUE., - maxmlo = 600, maxsgo = 10000, maxuso = 3000, nolbc = 5, - altopsu = 100., 5000., 5000., 5000., thairh = 20., - exnlat = 90., exslat = 90., exwlon = -180., exelon = 180., - lsurfa = .FALSE., - lt2m = .TRUE., ht2a = 0., ht2i = 1., - lrh2m = .TRUE., hh2a = 0., hh2i = 1., - lprecp = .TRUE., hprc = 0., raintp = 12., - lprodr =.TRUE. , ldiasa = .FALSE., - ionl = 235, jonl = 151, ionl2 = 221, jonl2 = 131, - /END - diff --git a/cases/carbosense/cosmo_INPUT_DIA.cfg b/cases/carbosense/cosmo_INPUT_DIA.cfg deleted file mode 100644 index 52082818..00000000 --- a/cases/carbosense/cosmo_INPUT_DIA.cfg +++ /dev/null @@ -1,8 +0,0 @@ -&DIACTL - n0meanval = 0, - nincmeanval = 1, - itype_diag_t2m = 1, - itype_diag_gusts=2, - lgplong = .TRUE., - hincgp = 1.0, -/ diff --git a/cases/carbosense/cosmo_INPUT_DYN.cfg b/cases/carbosense/cosmo_INPUT_DYN.cfg deleted file mode 100644 index bb4c79c5..00000000 --- a/cases/carbosense/cosmo_INPUT_DYN.cfg +++ /dev/null @@ -1,45 +0,0 @@ - &DYNCTL - lcpp_dycore=.true., - lspubc=.true., - itype_spubc=3, - rdheight=11000.0, - nrdtau=3, - rlwidth=15000.0, - betasw=0.4, - xkd=0.1, - epsass=0.15, - lcond=.true., - lhordiff=.true., - itype_hdiff=2, - hd_corr_u_bd=0.75, - hd_corr_t_bd=0.75, - hd_corr_trcr_bd=0.0, - hd_corr_p_bd=0.75, - hd_corr_u_in=0.25, - hd_corr_t_in=0.0, - hd_corr_trcr_in=0.0, - hd_corr_p_in=0.0, - hd_dhmax=250., - l_diff_Smag=.true., - l_diff_cold_pools_uv=.true., - l_diff_cold_pools=.true., - thresh_cold_pool=10.0, - l2tls=.true., - irunge_kutta=1, - itype_fast_waves=2, - divdamp_slope=1.0, - irk_order=3, - iadv_order=5, - itheta_adv=0, - ltadv_limiter=.FALSE., - y_scalar_advect='Bott2_Strang', - y_vert_adv_dyn='impl2', - ieva_order=3, - ldyn_bbc=.FALSE., - itype_bbc_w=114, - ldiabf_lh=.false., - itype_outflow_qrsg=2, - itype_lbc_qrsg=1, - l_satad_dyn_iter=.FALSE., - lcori=.true. - /END diff --git a/cases/carbosense/cosmo_INPUT_GHG.cfg b/cases/carbosense/cosmo_INPUT_GHG.cfg deleted file mode 100644 index 97473c33..00000000 --- a/cases/carbosense/cosmo_INPUT_GHG.cfg +++ /dev/null @@ -1,22 +0,0 @@ -&GHGCTL - in_tracers = {cfg.in_tracers}, - tracer_start = {cfg.tracer_start}, - iemiss_interp = 1, - gridded_emissions_nc = '../input/oae/{cfg.oae_gridded_emissions_nc}', - vertical_profile_nc = '../input/oae/{cfg.oae_vertical_profiles_nc}', - hour_of_day_nc = '../input/oae/{cfg.oae_hourofday_nc}', - day_of_week_nc = '../input/oae/{cfg.oae_dayofweek_nc}', - month_of_year_nc = '../input/oae/{cfg.oae_monthofyear_nc}', - modis_reflectances_nc = '../input/vprm/modis.nc', - veg_class_frac_nc = '../input/vprm/vegetation.nc', - octe_maps_nc = '../input/octe/maps.nc', - octe_lambdas_nc = '../input/octe/lambdas.nc', -/ -&VPRMCTL - yvprm_table = 'gerbig', - lcut_area = .TRUE., - lon_cut_start = 8.469, - lon_cut_end = 8.591, - lat_cut_start = 47.334, - lat_cut_end = 47.436, -/ diff --git a/cases/carbosense/cosmo_INPUT_IO.cfg b/cases/carbosense/cosmo_INPUT_IO.cfg deleted file mode 100644 index 2a4e11be..00000000 --- a/cases/carbosense/cosmo_INPUT_IO.cfg +++ /dev/null @@ -1,146 +0,0 @@ - &IOCTL - ldwd_grib_use = .FALSE., - l_ke_in_gds = .TRUE., - lasync_io = {cfg.lasync_io}, - itype_gather = 1, - ymode_read = 'r ', - ymode_write = 'w ', - nincwait = 90, - nmaxwait = 300, - nvers = 570, - ncenter = 215, - ngribout = 1, - num_gribtabs = 17, - yform_read = "ncdf", - nhour_restart = {restart_start:.0f} ,{restart_stop:.0f}, {restart_step:.0f}, ! start, stop and increment in full forecast hours - ydir_restart_in = '{cfg.cosmo_restart_in}', - ydir_restart_out = '{cfg.cosmo_restart_out}', - yform_restart = 'nc-4' - ytunit_restart = 'f', - /END - &GRIBIN - lbdana = .FALSE., - ydirini = '../../int2lm/output/', - ytunitbd = 'd', - lchkini = .TRUE., - hincbound = 1.0, - ydirbd = '../../int2lm/output/', - lchkbd = .TRUE., - lana_qi = .TRUE., - llb_qi = .TRUE., - lana_qg = .FALSE., - llb_qg = .FALSE., - lana_qr_qs = .TRUE., - llb_qr_qs = .TRUE., - lana_rho_snow = .FALSE., - lan_lai = .TRUE., - lan_rootdp = .TRUE., - lan_vio3 = .TRUE., - lan_plcov = .TRUE., - lan_t_cl = .TRUE., - lan_w_cl = .TRUE., - lan_hmo3 = .TRUE., - lan_t_so0 = .TRUE., - lan_t_snow = .TRUE., - lan_w_snow = .TRUE., - lan_w_i = .TRUE., - lan_rho_snow = .TRUE., - newbc = 0, - hnewbcdt = 3.0, -/ -&GRIBOUT - ytunit = 'd', - lanalysis = .FALSE., - yform_write = 'ncdf', ! grb1 or ncdf - hcomb = 0,8761,1, - yvarml = 'U_10M', ! 10m u-wind (m s-1) - 'V_10M', ! 10m v-wind (m s-1) - 'T_2M', ! 2m temperature (K) - 'TD_2M', ! 2m dew point temperature (K) - 'RELHUM_2M', ! 2m relative humidity (%) - 'CLCT', ! total cloud cover (%) - 'CLCH', ! cloud cover of high clouds (%) - 'CLCM', ! cloud cover of medium clouds (%) - 'CLCL', ! cloud cover of low clouds (%) - 'T_S', ! surface temperature (K) - 'QV_S', ! surfrace specific humidity (kg kg-1) - 'PS', ! surface pressure (Pa) - 'PMSL', ! surface pressure reduced to N.N. (Pa) - 'W_SNOW', ! snow cover water content (kg m-2) - 'H_SNOW', ! height of snow covera (m) - 'RAIN_GSP', ! accumulated large scale rainfall amount (kg m-2) - 'SNOW_GSP', ! accumulated large scale snowfall amount (kg m-2) - 'TOT_PREC', ! accumulated total precipitation (kg m-2) - 'PRR_GSP', ! large-scale rain rate (kg s-1 m-2) - 'PRS_GSP', ! large-scale snow rate (kg s-1 m-2) - 'PRG_GSP', ! large-scale graupel rate (kg s-1 m-2) - 'TWATER', ! liquid water path (kg m-2) - 'TQV', ! integrated water vapor (kg m-2) - 'TQC', ! cloud water path (kg m-2) - 'TQI', ! ice water path (kg m-2) - 'TQR', ! rain water path (kg m-2) - 'TQS', ! snow water path (kg m-2) - 'TQG', ! graupel water path (kg m-2) - 'Z0', ! surface roughness length (m) - 'TCM', ! turbulent transfer coefficient for momentum (-) - 'TCH', ! turbulent transfer coefficient for heat/moisture (-) - 'HPBL', ! boundary layer height (m) - 'ALB_RAD', ! surface short-wave albedo (%) - 'AUMFL_S', ! averaged u-component of momentum flux (N m-2) - 'AVMFL_S', ! averaged v-component of momentum flux (N m-2) - 'ALHFL_S', ! averaged latent heat flux (W m-2) - 'ASHFL_S', ! averaged sensible heat flux (W m-2) - 'ASOB_S', ! averaged short-wave radiative budget (W m-2) - 'ATHB_S', ! averaged long-wave radiative budget (W m-2) - 'APAB_S', ! averaged photosynthetic active radiation (W m-2) - 'ASWDIFU_S', ! averaged short wave diffuse upward radiation (W m-2) - 'ATHD_S', ! averaged long wave downward radiation (W m-2) - 'ASWDIR_S', ! averaged short wave direct downward radiation (W m-2) - 'ASWDIFD_S', ! averaged short wave diffuse downward radiation (W m-2) - 'SWDIRS_RAD',! short wave direct downward radiation (W m-2) - 'SWDIFDS_RAD',!short wave diffuse downward radiation (W m-2) - 'PABS_RAD', ! photosynthetic active radiation (W m-2) - 'T_SO', ! soil temperature (K) - 'W_SO', ! soil water content (kg m-2) - 'W_SO_ICE', ! soil ice content (kg m-2) - 'U', ! zonal wind-component (m s-1) - 'V', ! meridional wind-component (m s-1) - 'W', ! vertical wind speed (m s-1) - 'T', ! air temperature (K) - 'P', ! air pressure (Pa) - 'QV', ! specific humidity (kg kg-1) - 'QC', ! specific cloud-water content (kg kg-1) - 'QI', ! specific cloud-ice content (kg kg-1) - 'CLC', ! layer cloud area fraction (%) - 'TKE', ! turbulent kinetic energy (m2 s-2) - 'CO2_BG', ! Background mass fraction of CO2 (kg kg-1) - 'CO2_A', ! Mass fraction of CO2 by anthropogenic emissions (kg kg-1) - 'CO2_GPP', ! Mass fraction of CO2 by gross primary production (kg kg-1) - 'CO2_RA', ! Mass fraction of CO2 by gross respiration (kg kg-1) - !'CO2_A_X', ! Mass fraction of CO2 by anthropogenic emissions outside Zurich (kg kg-1) - !'CO2_GPP_X', ! Mass fraction of CO2 by gross primary production outside Zurich (kg kg-1) - !'CO2_RA_X', ! Mass fraction of CO2 by gross respiration outside Zurich (kg kg-1) - 'CO_BG', ! Background mass fraction of CO (kg kg-1) - 'CO_A', ! Mass fraction of CO by anthropogenic emissions (kg kg-1) - 'CH4_BG', ! Background mass fraction of CH4 (kg kg-1) - 'CH4_A', ! Mass fraction of CH4 by anthropogenic emissions (kg kg-1) - !'CO2_A_E', ! anthropogenic CO2 emissions at surface (kg m-2 s-1) - !'CO_A_E', ! anthropogenic CO emissions at surface (kg m-2 s-1) - !'CH4_A_E', ! anthropogenic CH4 emissions at surface (kg m-2 s-1) - !'CO2_RA_F', ! biospheric CO2 RA flux from VPRM model (kg m-2 s-1) - !'CO2_GPP_F', ! biospheric CO2 GPP flux from VPRM model (kg m-2 s-1) - - l_z_filter = .TRUE., - l_p_filter = .TRUE., - luvmasspoint = .FALSE., - l_fi_pmsl_smooth = .TRUE., - lcheck = .TRUE., - ydir = '../output/', - ysuffix = '', - yvarsl = '', - zlev = 750.,1000.,2000.,3000.,4000.,5000.,8500.,10500., - plev = 100.,150.,200.,250.,300.,350.,400.,450.,500.,550.,600.,650., - 700.,750.,800.,850.,900.,925.,950.,1000., - l_fi_pmsl_smooth = .TRUE., - nunit_of_time = 1 - /END diff --git a/cases/carbosense/cosmo_INPUT_ORG.cfg b/cases/carbosense/cosmo_INPUT_ORG.cfg deleted file mode 100644 index 0457d164..00000000 --- a/cases/carbosense/cosmo_INPUT_ORG.cfg +++ /dev/null @@ -1,62 +0,0 @@ -&LMGRID - ! COSMO-1 Carbosense Switzerland domain - ie_tot = 900, - je_tot = 600, - ke_tot = 60, - pollon = -170, ! origin lon: 10.0 - pollat = 43, ! origin lat: 47.0 - dlon = 0.01, - dlat = 0.01, - startlat_tot = -3.18, - startlon_tot = -4.92, -/ -&RUNCTL - dt = 10.0, - hstart = {cfg.hstart}, - hstop = {cfg.hstop}, - ydate_ini = '{cfg.inidate_yyyymmddhh}', - nprocx = {cfg.cosmo_np_x}, - nprocy = {cfg.cosmo_np_y}, - nprocio = 0, - hincmxt = 1.0, - nblock = 2, - lphys = .TRUE., - luse_rttov = .FALSE., - luseobs = .FALSE., ! turn on/off nudging - leps = .FALSE., - lreorder = .FALSE., - lreproduce = .TRUE., - itype_timing = 1, - ldiagnos = .TRUE., - ldfi = .FALSE., - ldump_ascii = .FALSE., - ldatatypes = .FALSE., - ltime_barrier = .TRUE., - num_asynio_comm = {cfg.cosmo_np_io}, - num_iope_percomm = {cfg.num_iope_percomm}, - idbg_level = 11, - nboundlines = 3, -/ -&TUNING - rlam_mom=0.0, - rlam_heat=1.0, - rat_sea=20.0, - rat_lam=1.0, - rat_can=1.0, - c_lnd=2.0, - c_sea=1.5, - c_soil=1.0, - pat_len=500.0, - z0m_dia=0.2, - crsmin=150.0, - clc_diag=0.5, - tur_len=150.0, - q_crit=1.6, - qc0=0.0002, - tkhmin=0.4, - tkmmin=0.4, - v0snow=20.0, - mu_rain=0.5, - rain_n0_factor=0.1, - a_hshr=0.2, -/END diff --git a/cases/carbosense/cosmo_INPUT_PHY.cfg b/cases/carbosense/cosmo_INPUT_PHY.cfg deleted file mode 100644 index a355452a..00000000 --- a/cases/carbosense/cosmo_INPUT_PHY.cfg +++ /dev/null @@ -1,46 +0,0 @@ - &PHYCTL - lgsp=.true., - lgsp_first=.TRUE., - itype_gscp=4, - ldiniprec=.FALSE., - lrad=.true., - hincrad=0.1, - lradtopo=.FALSE., - lforest=.TRUE., - llake=.FALSE., - ltur=.true., - loldtur=.TRUE., - itype_sher=1, - itype_vdif=-1, - ninctura=1, - lexpcor=.false., - ltmpcor=.false., - lprfcor=.false., - lnonloc=.false., - lcpfluc=.false., - itype_turb=3, - imode_turb=1, - itype_tran=2, - imode_tran=1, - limpltkediff=.true., - ltkesso=.FALSE., - ltkeshs=.TRUE., - itype_wcld=2, - icldm_rad=4, - icldm_turb=2, - icldm_tran=0, - itype_synd=2, - lsoil=.TRUE., - lmelt=.TRUE., - lmelt_var=.TRUE., - itype_evsl=2, - itype_trvg=2, - itype_heatcond=2, - lconv=.FALSE., - nincconv=10, - itype_conv=3, - lcape=.false., - lconf_avg=.false., - lsso=.FALSE., - lseaice=.FALSE., - /END diff --git a/cases/carbosense/cosmo_runjob.cfg b/cases/carbosense/cosmo_runjob.cfg deleted file mode 100644 index b5ab4f1e..00000000 --- a/cases/carbosense/cosmo_runjob.cfg +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name="cosmo_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --time={cfg.cosmo_walltime} -#SBATCH --nodes={cfg.cosmo_np_tot} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --hint=nomultithread -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.cosmo_work} - -export MALLOC_MMAP_MAX_=0 -export MALLOC_TRIM_THRESHOLD_=536870912 -export OMP_NUM_THREADS=1 - -{cfg.mpich_cuda} - -# Set this to avoid segmentation faults -ulimit -s unlimited -ulimit -a - -# clean up -rm -f YU* -rm -f M_* -rm -f core.* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u ./cosmo >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo "Executing COSMO failed" >> {logfile}; exit 1; }} - -# check whether COSMO was successful by calculating name of the last -# output file that should have been created - -hoursSim=$(expr {cfg.hstop} % 24) -daysSim=$(expr {cfg.hstop} / 24) # bash does not know floating points, it truncates to integer -hoursSimNice=$(printf "%02d" $hoursSim) -daysSimNice=$(printf "%02d" $daysSim) -lastHourFile="lfff${{daysSimNice}}${{hoursSimNice}}0000.nc" - -[[ ! -f {cfg.cosmo_output}${{lastHourFile}} ]] || {{ echo "COSMO failed" >> {logfile}; exit 1; }} - -# copy log file -cp {logfile} {logfile_finish} - diff --git a/cases/carbosense/cosmo_tracers.csv b/cases/carbosense/cosmo_tracers.csv deleted file mode 100644 index 63bfe44f..00000000 --- a/cases/carbosense/cosmo_tracers.csv +++ /dev/null @@ -1,15 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl -#,,,,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,10,13,0,0,kg kg-1,CO2_mass_fraction_background,Background mass fraction of CO2,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CO_BG,11,13,0,0,kg kg-1,CO_mass_fraction_background,Background mass fraction of CO,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CH4_BG,12,13,0,0,kg kg-1,CH4_mass_fraction_background,Background mass fraction of CH4,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP,20,13,0,2,kg kg-1,CO2_mass_fraction_surface_flux_gpp,Mass fraction of CO2 by gross primary production (GPP),on,off,1D,on,zero,zero,zero_flux,full,off,off,.FALSE.,0,,,, -,CO2_RA,21,13,0,2,kg kg-1,CO2_mass_fraction_surface_flux_ra,Mass fraction of CO2 by gross respiration (RA),on,off,1D,on,zero,zero,zero_flux,full,off,off,.FALSE.,0,,,, -#,CO2_GPP_X,22,13,0,2,kg kg-1,CO2_mass_fraction_surface_flux_gpp_no_ZH,Mass fraction of CO2 by gross primary production (GPP) outside Zurich,on,off,1D,on,file,file,zero_flux,full,off,off,.FALSE.,0,,,, -#,CO2_RA_X,23,13,0,2,kg kg-1,CO2_mass_fraction_surface_flux_ra_no_ZH,Mass fraction of CO2 by gross respiration (RA) outside Zurich,on,off,1D,on,file,file,zero_flux,full,off,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,,,,, -,CO2_A,30,13,2,0,kg kg-1,CO2_mass_fraction_anthropogenic,Mass fraction of CO2 by anthropogenic emissions,on,off,1D,on,zero,zero,zero_flux,full,off,off,.FALSE.,0,1,"'CO2_A', 'CO2_B', 'CO2_C', 'CO2_D', 'CO2_E', 'CO2_F', 'CO2_G', 'CO2_H', 'CO2_I', 'CO2_J', 'CO2_K', 'CO2_L', 'CO2_M'","'GNFR_A', 'GNFR_B', 'GNFR_C', 'GNFR_D', 'GNFR_E', 'GNFR_F', 'GNFR_G', 'GNFR_H', 'GNFR_I', 'GNFR_J', 'GNFR_K', 'GNFR_L', 'GNFR_I'","'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources'" -#,CO2_A_X,31,13,2,0,kg kg-1,CO2_mass_fraction_anthropogenic,Mass fraction of CO2 by anthropogenic emissions outside Zurich,on,off,1D,on,file,file,zero_flux,full,off,off,.FALSE.,0,1,"'CO2_A_X', 'CO2_B_X', 'CO2_C_X', 'CO2_D_X', 'CO2_E_X', 'CO2_F_X', 'CO2_G_X', 'CO2_H_X', 'CO2_I_X', 'CO2_J_X', 'CO2_K_X', 'CO2_L_X', 'CO2_M_X'","'GNFR_A', 'GNFR_B', 'GNFR_C', 'GNFR_D', 'GNFR_E', 'GNFR_F', 'GNFR_G', 'GNFR_H', 'GNFR_I', 'GNFR_J', 'GNFR_K', 'GNFR_L', 'GNFR_I'","'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources'" -,CO_A,32,13,2,0,kg kg-1,CO_mass_fraction_anthropogenic,Mass fraction of CO by anthropogenic emissions,on,off,1D,on,zero,zero,zero_flux,full,off,off,.FALSE.,0,1,"'CO_A', 'CO_B', 'CO_C', 'CO_D', 'CO_E', 'CO_F', 'CO_G', 'CO_H', 'CO_I', 'CO_J', 'CO_K', 'CO_L', 'CO_M'","'GNFR_A', 'GNFR_B', 'GNFR_C', 'GNFR_D', 'GNFR_E', 'GNFR_F', 'GNFR_G', 'GNFR_H', 'GNFR_I', 'GNFR_J', 'GNFR_K', 'GNFR_L', 'GNFR_I'","'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources', 'area_sources'" -,CH4_A,33,13,2,0,kg kg-1,CH4_mass_fraction_anthropogenic,Mass fraction of CH4 by anthropogenic emissions,on,off,1D,on,zero,zero,zero_flux,full,off,off,.FALSE.,0,1,'CH4','GNFR_I','area_sources' diff --git a/cases/carbosense/int2lm_INPUT.cfg b/cases/carbosense/int2lm_INPUT.cfg deleted file mode 100644 index 8716d05f..00000000 --- a/cases/carbosense/int2lm_INPUT.cfg +++ /dev/null @@ -1,169 +0,0 @@ -&CONTRL - yinput_model = 'COSMO', ! string to identify the input model - ydate_ini = '{cfg.inidate_int2lm_yyyymmddhh}', ! start of the forecast - - hstart = {cfg.hstart_int2lm}, ! first hour to be processed - hstop = {cfg.hstop_int2lm}, ! last hour to be processed - hincbound = 1.0, ! increment in hours for the processing - - nprocx = {cfg.int2lm_np_x}, ! number of processors in east-west direction - nprocy = {cfg.int2lm_np_y}, ! number of processors in north-south direction - nprocio = 0, ! number of extra processors for asynchronous IO - nincwait = 30, ! seconds to wait until next attempt if a ready file is - ! not available - nmaxwait = 300, ! maximum seconds to wait until abort if a ready file is - ! not available - - - itype_w_so_rel = 1, ! type of relative soil moisture input (0,1,2) - idbg_level = 2, ! to control verbosity of debug output - itype_balance_pp = 2, ! To choose the previous (=1) or new (=2) method for - ! hydrostatic pressure calculation in case of - ! non-hydrostatic input models - - luse_t_skin = .TRUE., ! if .TRUE., use ECMWF skin temperature for surface - lpost_0006 = .TRUE., ! if .TRUE., force to use ECMWF dataset after 27 June 2000 - luvcor = .TRUE., ! if .TRUE., correct winds for given surface pres. tendency - lvertwind_ini = .TRUE., ! if .TRUE., compute vertical wind for LM for initial data - lvertwind_bd = .FALSE., ! if .TRUE., compute vertical wind for LM for boundary data - ! (MeteoSwiss uses .FALSE.) - lprog_qi = .TRUE., ! if .TRUE., interpolate qi to LM grid - lprog_qr_qs = .TRUE., ! if .TRUE., interpolate qr,qs to LM grid - lprog_qg = .FALSE., ! if .TRUE., interpolate qg to LM grid - lprog_rho_snow = .TRUE., ! if .TRUE., interpolate rho_snow to LM grid - ! for ICON input - ! (MeteoSwiss uses .TRUE.) - linitial = .TRUE., ! if .TRUE., initial data for LM - lboundaries = .TRUE., ! if .TRUE., lateral boundaries for LM - ltime_mean = .TRUE., ! if .TRUE., mean values of the timings are printed - lmulti_layer_lm = {cfg.multi_layer}, ! compute data for multi-layer soil model - lmulti_layer_in = {cfg.multi_layer}, ! data from multi-layer soil model in the incoming data - -! Settings for GLOBE orography data -! lfilter_oro = .FALSE, ! if extpar orography is already filtered, set to .FALSE. -! ilow_pass_oro = 4, ! type of low-pass filter for orography -! numfilt_oro = 1, ! number of sequential applications of filter -! ilow_pass_xso = 5, ! type of low-pass filter for extra smoothing steep oro. -! lxso_first = .FALSE., ! if .TRUE., do extra smoothing of orography first -! numfilt_xso = 1, ! number of sequential applications of xso-filter -! rxso_mask = 750.0, ! mask for extra smoothing of steep oro.: dh > rxso_mask -! eps_filter = 0.1, ! parameter for orography filtering -! rfill_valley = 0.0, ! mask for valley filling: dh > rfill_valley -! ifill_valley= 7, ! -! norder_filter = 5, ! order of the orography filtering - -! Settings for ASTER orography data - lfilter_oro = .FALSE, ! if extpar orography is already filtered, set to .FALSE. - ilow_pass_oro = 1, ! type of low-pass filter for orography - numfilt_oro = 2, ! number of sequential applications of filter - ilow_pass_xso = 5, ! type of low-pass filter for extra smoothing steep oro. - lxso_first = .FALSE., ! if .TRUE., do extra smoothing of orography first - numfilt_xso = 1, ! number of sequential applications of xso-filter - rxso_mask = 750.0, ! mask for extra smoothing of steep oro.: dh > rxso_mask - eps_filter = 1.7, ! parameter for orography filtering - rfill_valley = 0.0, ! mask for valley filling: dh > rfill_valley - ifill_valley= 7, ! - norder_filter = 5, ! order of the orography filtering - - lfilter_pp = .TRUE., ! if .TRUE., filter the pressure deviation after vertical - ! vertical interpolation in LM2LM - lbdclim = .TRUE., ! if .TRUE., special boundary data for climate mode - lforest = .TRUE., ! if .TRUE., run with forest (evergreen and deciduous) - lsso = .FALSE., ! process parameters for sso scheme - lradtopo = .TRUE., ! process parameters for topographic correction of radiation - llbc_smooth = .TRUE., ! if .TRUE., run with smooth orography transition to LB - l_art = .TRUE., ! switch for additional cosmo-art fields - l_art_nested = .FALSE., ! switch for cosmo-art2cosmo-art - l_art_file = .TRUE., ! if .TRUE., art namelist is read from INPUT_ART - l_smi = .FALSE., ! if .TRUE., interpolate soil moisture with SMI - ! (MeteoSwiss uses .FALSE.) - lmixcld = .FALSE., ! if .TRUE., qi added in grh instead of being directly - ! interp. - ! (MeteoSwiss uses .FALSE.) - lasync_io = .FALSE., ! if .TRUE.: the model runs with extra PEs for asynchr. IO - l_topo_z = .FALSE., ! if .TRUE., additional smoothing of the topography -/ ! for the LM-Z coordinate Version - -&GRID_IN -! COSMO-7 grid - ie_in_tot = 393, ! ie (lon) for input grid (total domain) - je_in_tot = 338, ! je (lat) for input grid (total domain) - ke_in_tot = 60, ! ke (levels) for input grid (total domain) - pcontrol_fi=30000., ! Pressure of control level for geopotential - pollat_in = 43.0, - pollon_in = -170.0, - dlat_in = 0.06, - dlon_in = 0.06, - startlat_in_tot = -9.78, - startlon_in_tot = -16.32, -/ - -&LMGRID -! COSMO-1 Carbosense domain - startlat_tot = -3.18, - startlon_tot = -4.92, - pollat = 43.0, - pollon = -170.0, - dlon = 0.01, - dlat = 0.01, - ielm_tot = 900, - jelm_tot = 600, - kelm_tot = 60, - ivctype = 4, ! used by MeteoSwiss COSMO-7 -> 1 processing - irefatm = 2, ! used by MeteoSwiss - lanalyt_calc_t0p0 = .TRUE., ! used by MeteoSwiss - vcflat = 11357.0, - vcoord_d = 23588.50,22395.93,21304.04, 20307.39, 19399.95, - 18574.03, 17821.88, 17135.64, 16507.79, 15930.60, - 15396.52, 14897.86, 14427.98, 13981.10, 13551.52, - 13133.53, 12721.37, 12312.04, 11900.03, 11485.37, - 11068.19, 10648.54, 10226.48, 9802.09, 9375.43, - 8946.58, 8515.59, 8082.55, 7647.52, 7210.55, - 6771.96, 6332.38, 5896.41, 5468.04, 5050.84, - 4647.96, 4261.91, 3893.26, 3542.15, 3208.52, - 2892.23, 2593.71, 2312.95, 2049.75, 1803.89, - 1575.57, 1364.68, 1170.90, 993.84, 833.44, - 689.53, 561.52, 448.82, 350.95, 267.55, - 197.67, 137.23, 87.33, 48.44, 20.00, 0.00, -/ - -&DATABASE -/ - -&DATA -! General control variables: - ncenter = 215, ! Originating center identification - nprocess_ini = 131, ! Generating process identification for initial values - nprocess_bd = 132, ! Generating process identification for boundary values - ymode_write = 'w b', ! Specify open mode for writing - ytunit_in = 'd', ! Time unit for input data - ytunit_out = 'd', ! Time unit for output data - yinput_type = 'analysis',! Type of input data: - ! 'forecast' forecast data - ! 'analysis' analysis data - ! 'ana_init' initialized analysis data -! ---------------------------------------------------------------- ! -! Variables for external data: - ylmext_lfn='{cfg.int2lm_extpar_file}', - ylmext_cat='../input/extpar/', - ylmext_form_read='ncdf', ! Input format of external data - yinext_lfn='laf{cfg.inidate_int2lm_yyyymmddhh}', ! Name of the file with the external fields - yinext_cat='../input/meteo/', - yinext_form_read="grb1", ! Input format of external data from coarse grid - ie_ext=1801, - je_ext=1801, -! ---------------------------------------------------------------- ! -! Variables for the models: - yin_cat='../input/meteo/', - yin_form_read='grb1', - ylm_cat='../output/', - ylm_form_write = "nc-4", ! Output format of COSMO-Model data -/ - -&PRICTR - igp_tot = 36, 40, 48, 44, 48, 85, 77, - jgp_tot = 30, 94, 38, 26, 26, 96, 12, - lchkin = .TRUE., - lchkout = .TRUE., - lprgp = .FALSE., -/ diff --git a/cases/carbosense/int2lm_datasets.csv b/cases/carbosense/int2lm_datasets.csv deleted file mode 100644 index 98b4b996..00000000 --- a/cases/carbosense/int2lm_datasets.csv +++ /dev/null @@ -1,3 +0,0 @@ -,ie_tot,je_tot,ke_tot,startlon_tot,startlat_tot,dlon,dlat,pollat,pollon,polgam,ninc,hinc,lconst_in_time,lconserve_mass,cvertdist,ydirin,ylfn_prefix,yvertical_axis_type,yvertical_method,yvarlist,yinterp_type,ngrid_refine,ycombine_action -#,,,,,,,,,,,,,,,,,,,,,,, -,121,65,100,2,43,0.125,0.125,,,,,3,.FALSE.,.FALSE.,,../input/icbc/,cams_co2_,hyb_sig_pr,I,"CO2_BG, CO_BG, CH4_BG",L,,O diff --git a/cases/carbosense/int2lm_runjob.cfg b/cases/carbosense/int2lm_runjob.cfg deleted file mode 100644 index 22ecf306..00000000 --- a/cases/carbosense/int2lm_runjob.cfg +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name=int2lm_carbosense_mch_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime} -#SBATCH --time={cfg.int2lm_walltime} -#SBATCH --nodes={cfg.int2lm_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.int2lm_ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --account={cfg.compute_account} -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.int2lm_work} - -# Export env variables -export OMP_NUM_THREADS=1 -export CRAY_CUDA_MPS=1 - -export MALLOC_MMAP_MAX_=0 -export MALLOC_TRIM_THRESHOLD_=536870912 - -# Set this to avoid segmentation faults -ulimit -s unlimited -ulimit -a - -# Load modules for post-processing -module load daint-gpu -module load NCO -module list - -unset G2G -export MV2_USE_CUDA=0 -export MV2_USE_GPUDIRECT=0 - -export api_dir="/users/morsier/install/libgrib_api/1.13.1" -export GRIB_DEFINITION_PATH=${{api_dir}}/cosmo_definitions/definitions:${{api_dir}}/share/grib_api/definitions -export GRIB_SAMPLES_PATH=${{api_dir}}/cosmo_definitions/samples -export GRIB_API_DEBUG=0 - -rm -f YU* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u -n {cfg.int2lm_np_tot} ./int2lm >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo \"Executing INT2LM MPI command failed\" >> job.out; exit 1; }} - -# check whether INT2LM was successful by checking for presence of last -# meteofile that should have been processed -firstsecs=$(date -u --date "{ini_day} {ini_hour}" +%s) - -let lastsecs="firstsecs+{cfg.hstop_int2lm}*3600" -lastyyyymmddhh=$(date -u --date "1970-01-01 UTC +${{lastsecs}} sec" +%Y%m%d%H) -lastHourFile="lbfd${{lastyyyymmddhh}}.nc" - -echo last file processed is $lastHourFile >> {logfile} - -[[ ! -f ../output/${{lastHourFile}} ]] && {{ echo "INT2LM failed" >> {logfile}; exit 1; }} - -cp {logfile} {logfile_finish} diff --git a/cases/carbosense/int2lm_tracers.csv b/cases/carbosense/int2lm_tracers.csv deleted file mode 100644 index 30e330d5..00000000 --- a/cases/carbosense/int2lm_tracers.csv +++ /dev/null @@ -1,7 +0,0 @@ -,yshort_name,igribtable,igribparam,irank,yunits,ystandard_name,ylong_name,yfamily,ylsm,lderived,loutput,lrequired,lnested,lcompress,ldryin -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,243,10,3,kg kg-1,CO2_mass_fraction_at_lateral_boundary,CO2_mass_fraction_at_lateral_boundary,t, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE. -#,,,,,,,,,,,,,,,,,,,,, -,CO_BG,243,11,3,kg kg-1,CO_mass_fraction_at_lateral_boundary,CO_mass_fraction_at_lateral_boundary,t, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE. -#,,,,,,,,,,,,,,,,,,,,, -,CH4_BG,243,12,3,kg kg-1,CH4_mass_fraction_at_lateral_boundary,CH4_mass_fraction_at_lateral_boundary,t, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE. diff --git a/cases/che-wp4/config.py b/cases/che-wp4/config.py deleted file mode 100755 index 718f0250..00000000 --- a/cases/che-wp4/config.py +++ /dev/null @@ -1,160 +0,0 @@ -import os - -# GENERAL SETTINGS =========================================================== -user = os.environ['USER'] -target = 'cosmo-ghg' -restart_step = 120 # 5 days -#subtarget = 'spinup' -#spinup = 6 - -compute_host = 'daint' -compute_queue = 'normal' -compute_account = 'em05' -constraint = 'gpu' - -if constraint == 'gpu': - ntasks_per_node = 12 - mpich_cuda = ( - 'export MPICH_RDMA_ENABLED_CUDA=1\n' - 'export MPICH_G2G_PIPELINE=256\n' - 'export CRAY_CUDA_MPS=1\n' - 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cray/nvidia/default/lib64' - ) -elif constraint == 'mc': - ntasks_per_node = 36 - mpich_cuda = '' - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() - -# Root directory of the working space of the chain -work_root = os.environ['SCRATCH'] + "/processing_chain" - -# Directory where executables are stored -exe_dir = "/store/empa/em05/executables" - -# PRE-PROCESSING ============================================================= -input_root = "/store/empa/em05/mjaehn/CHE/input" -input_root_brd = "/store/empa/em05/dbrunner/che" # for meteo and oae - -# METEO ---------------------------------------------------------------------- -meteo_dir = os.path.join(input_root_brd, 'meteo') -meteo_prefix = "eas" -meteo_inc = 3 - -# ICBC ----------------------------------------------------------------------- -cams_dir_orig = os.path.join(input_root_brd, 'icbc') -cams_dir_proc = os.path.join(input_root, 'icbc', 'processed') -cams_parameters = [{ - "suffix": "cams_co2", - "inc": 3, - "species": ["CO2", "CO"], - "prefix1": "cams_gvri", - "prefix2": "sfc_gvri", - "lev": 137, -}, { - "suffix": "LSCE_d14C", - "inc": 3, - "species": ["C14"], -}] - -# OAE ------------------------------------------------------------------------ -# Online anthropogenic emissions -oae_dir = os.path.join(input_root, 'oae') -oae_gridded_emissions_nc = 'emissions_tno_co2_co.nc' -oae_vertical_profiles_nc = 'vertical_profiles.nc' -oae_hourofday_nc = 'hourofday_winter.nc' -oae_hourofyear_nc = 'hourofyear.nc' -oae_dayofweek_nc = 'dayofweek.nc' -oae_monthofyear_nc = 'monthofyear.nc' - -# OBS_NUDGING ---------------------------------------------------------------- -obs_nudging_dir = '/store/empa/em05/obs_nudging_cosmo' -obs_nudging_prefixes = [ - 'cdfin_amdar', 'cdfin_ship', 'cdfin_synop', 'cdfin_temp', 'cdfin_wprof' -] -obs_nudging_date_format = "-%Y%m%d000000" - -# EMISSIONS ------------------------------------------------------------------ -emissions_dir = [ - os.path.join(input_root, 'emissions'), - os.path.join(input_root, 'emissions'), - os.path.join(input_root, 'emissions'), -] -emis_gridname = ["emis_", "npp_", "ocean_"] - -# BIOFLUXES ------------------------------------------------------------------ -vprm_dir = os.path.join(input_root, 'vprm', 'processed') -vprm_prefix = ["vprm_", "dc14__"] - -# INT2LM --------------------------------------------------------------------- -# Extpar-file -int2lm_extpar_dir = os.path.join(input_root, 'extpar') -int2lm_extpar_file = 'external_parameter_hjm_globe.nc' - -# Executable -int2lm_bin = os.path.join(exe_dir, 'int2lm_gnu_208d68e_20201005') - -# Namelist and slurm runscript templates -int2lm_namelist = '%s/cases/%s/int2lm_INPUT.cfg' % (chain_src_dir, casename) -int2lm_runjob = '%s/cases/%s/int2lm_runjob.cfg' % (chain_src_dir, casename) - -# Walltime -if compute_queue == "normal": - int2lm_walltime = "03:30:00" -elif compute_queue == "debug": - int2lm_walltime = "00:30:00" -else: - logging.error("Unset queue name: %s" % compute_queue) - sys.exit(1) - -# Domain decomposition -int2lm_nodes = 4 -int2lm_ntasks_per_node = 12 -int2lm_np_x = 8 -int2lm_np_y = 6 -int2lm_np_tot = int2lm_np_x * int2lm_np_y - -# POST_INT2LM ---------------------------------------------------------------- -# Fields that are used as initial conditions -post_int2lm_species = ['CO2_BG', 'CO_BG', 'C14_BG'] - -# SIMULATION ================================================================= -# COSMO ---------------------------------------------------------------------- -# Executable -cosmo_bin = os.path.join(exe_dir, "cosmo-org-ghg_pgi_e5e9e5ae_20201125") - -# Namelists and slurm runscript templates -cosmo_namelist = '%s/cases/%s/cosmo_INPUT_' % (chain_src_dir, casename) -cosmo_runjob = '%s/cases/%s/cosmo_runjob.cfg' % (chain_src_dir, casename) - -# Walltimes and domain decomposition -if compute_queue == "normal": - cosmo_walltime = "03:00:00" - cosmo_np_x = 32 - cosmo_np_y = 30 -elif compute_queue == "debug": - cosmo_walltime = "00:30:00" - cosmo_np_x = 4 - cosmo_np_y = 3 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) - -# Total node count -cosmo_np_io = 0 -cosmo_np_tot = int( - cosmo_np_x * cosmo_np_y / ntasks_per_node) + cosmo_np_io # 80 - -# POST-PROCESSING =========================================================== -# REDUCE_OUTPUT -------------------------------------------------------------- -convert_gas = True -#output_levels = 20 # keep all levels - -# POST_COSMO ----------------------------------------------------------------- -output_root = os.path.join("/store/empa/em05/", user, - "processing_chain_output", casename) diff --git a/cases/che-wp4/cosmo_INPUT_AF.cfg b/cases/che-wp4/cosmo_INPUT_AF.cfg deleted file mode 100644 index b5815218..00000000 --- a/cases/che-wp4/cosmo_INPUT_AF.cfg +++ /dev/null @@ -1,4 +0,0 @@ -&AFCTL - hinc_e=1.0, !time increment for read of emissions - hinc_f=1.0, !time increment for read of fluxes -/END diff --git a/cases/che-wp4/cosmo_INPUT_ASS.cfg b/cases/che-wp4/cosmo_INPUT_ASS.cfg deleted file mode 100644 index 3e5febf0..00000000 --- a/cases/che-wp4/cosmo_INPUT_ASS.cfg +++ /dev/null @@ -1,55 +0,0 @@ -&NUDGING - lnudge = .TRUE., - lverif = .FALSE., - mruntyp = 2, - lverpas = .TRUE., - ycdfdir = '{cfg.cosmo_input}/obs_nudging', - hnudgsta = {cfg.hstart}, - hnudgend = {cfg.hstop}, - tconbox = 180.0, ! 3 * dt - hversta = 0.0, - hverend = 0.0, - khumbal = 100, - ntpscor = 1, - ptpstop = 400.0, - luvgcor = .TRUE., - ltipol = .TRUE., tipolmx = 3.0, wtukrsa = 3.0, wtukrse = 1.0, - ltipsu = .TRUE., tipmxsu = 1.0, wtuksua = 1.5, wtuksue = 0.5, - wtukara = 1.5, wtukare = 0.5, - msprpar = 1, - msprpsu = 0, - gnudg = .0006, .0006, .0006, .0006, - gnudgsu = .0006, .0006, .0000, .0006, - gnudgar = .0006, .0000, .0006, .0000, - vcorls = .333 , .333 , .04 , .04 , vcutof = 0.75, 0.75, 1.0 , 1.0 , - vcorlsu = .013 , .013 , .002 , .00001, vcutosu = 0.75, 0.75, 4.0 , 0.001 , - vcsnisu = 2500., 2500., 9. , 9. , - rhvfac = 1.0 , 0.0 , 0.83, 0.83, - rhinfl = 0., 70., 0., 0., rhtfac = 1.3 , 1.43 , 1.3 , 1.3 , - rhiflsu = 70., 70., 100., 70., rhtfsu = 1.0 , 1.43 , 1.0 , 1.0 , - fnondiv = 0.8 , cnondiv = 0.1 , cutofr = 3.5 , 3.5 , 3.5 , 3.5 , - tnondiv = 1.1 , cutofsu = 2.0 , 3.5 , 2.0 , 2.0 , - topobs = 849., 1099., 799., 699., - botmod = 1099., 1099., 1099., 899., - lscadj = .TRUE..TRUE..TRUE.,.FALSE., - dtqc = 720., qcvf = 5.0 , 1.0 ,10.0 , 0.0 , - qcc = 0., 500., 0., .7, - qccsu = 12., 500., 12., .7, - lsynop = .TRUE., - laircf = .TRUE., - ldribu = .TRUE., - ltemp = .TRUE., - lpilot = .TRUE., - lcd137 = .FALSE., - lcd132 = .TRUE., - maxmlo = 600, maxsgo = 10000, maxuso = 3000, nolbc = 5, - altopsu = 100., 5000., 5000., 5000., thairh = 20., - exnlat = 90., exslat = 90., exwlon = -180., exelon = 180., - lsurfa = .FALSE., - lt2m = .TRUE., ht2a = 0., ht2i = 1., - lrh2m = .TRUE., hh2a = 0., hh2i = 1., - lprecp = .TRUE., hprc = 0., raintp = 12., - lprodr =.TRUE. , ldiasa = .FALSE., - ionl = 235, jonl = 151, ionl2 = 221, jonl2 = 131, - /END - diff --git a/cases/che-wp4/cosmo_INPUT_DIA.cfg b/cases/che-wp4/cosmo_INPUT_DIA.cfg deleted file mode 100644 index 5534ac59..00000000 --- a/cases/che-wp4/cosmo_INPUT_DIA.cfg +++ /dev/null @@ -1,9 +0,0 @@ -&DIACTL - n0meanval = 0, - nincmeanval = 1, - itype_diag_t2m = 1, - itype_diag_gusts = 2, - lgplong = .TRUE., - n0gp = 0, - hincgp = 1.0, -/ diff --git a/cases/che-wp4/cosmo_INPUT_DYN.cfg b/cases/che-wp4/cosmo_INPUT_DYN.cfg deleted file mode 100644 index 9af85a81..00000000 --- a/cases/che-wp4/cosmo_INPUT_DYN.cfg +++ /dev/null @@ -1,38 +0,0 @@ - &DYNCTL - lcpp_dycore=.TRUE., - lspubc=.TRUE., - rdheight=11000.0, - nrdtau=10, - rlwidth=75000.0, - ldyn_bbc=.FALSE., - itype_bbc_w=114, - xkd=0.1, - lcond=.TRUE., - l_diff_smag=.TRUE., - lhordiff=.TRUE., - itype_hdiff=2, - hd_corr_u_bd=0.75, - hd_corr_t_bd=0.75, - hd_corr_trcr_bd=0.0, - hd_corr_p_bd=0.75, - hd_corr_u_in=0.25, - hd_corr_t_in=0.0, - hd_corr_trcr_in=0.0, - hd_corr_p_in=0.0, - hd_dhmax=250., - l2tls=.TRUE., - irunge_kutta=1, - irk_order=3, - iadv_order=5, - itheta_adv=0, - ltadv_limiter=.FALSE., - y_scalar_advect = 'BOTT2_STRANG', - y_vert_adv_dyn='impl2', - ldiabf_lh=.FALSE., - itype_outflow_qrsg=2, - itype_lbc_qrsg=1, - itype_fast_waves=2, - divdamp_slope=1.0, - l_satad_dyn_iter=.FALSE. - /END - diff --git a/cases/che-wp4/cosmo_INPUT_GHG.cfg b/cases/che-wp4/cosmo_INPUT_GHG.cfg deleted file mode 100644 index b413b89c..00000000 --- a/cases/che-wp4/cosmo_INPUT_GHG.cfg +++ /dev/null @@ -1,22 +0,0 @@ -&GHGCTL - in_tracers = {cfg.in_tracers}, - tracer_start = {cfg.tracer_start}, - iemiss_interp = 1, - gridded_emissions_nc = '../input/oae/{cfg.oae_gridded_emissions_nc}', - vertical_profile_nc = '../input/oae/{cfg.oae_vertical_profiles_nc}', - hour_of_day_nc = '../input/oae/{cfg.oae_hourofday_nc}', - day_of_week_nc = '../input/oae/{cfg.oae_dayofweek_nc}', - month_of_year_nc = '../input/oae/{cfg.oae_monthofyear_nc}', - modis_reflectances_nc = '../input/vprm/modis.nc', - veg_class_frac_nc = '../input/vprm/vegetation.nc', - octe_maps_nc = '../input/octe/maps.nc', - octe_lambdas_nc = '../input/octe/lambdas.nc', -/ -&VPRMCTL - yvprm_table = 'gerbig', - lcut_area = .FALSE., - lon_cut_start = 0.0, - lon_cut_end = 0.0, - lat_cut_start = 0.0, - lat_cut_end = 0.0, -/ diff --git a/cases/che-wp4/cosmo_INPUT_IO.cfg b/cases/che-wp4/cosmo_INPUT_IO.cfg deleted file mode 100644 index bab2aec5..00000000 --- a/cases/che-wp4/cosmo_INPUT_IO.cfg +++ /dev/null @@ -1,220 +0,0 @@ - &IOCTL - ldwd_grib_use = .FALSE., - l_ke_in_gds = .TRUE., - lasync_io = {cfg.lasync_io}, - itype_gather = 1, - ymode_read = 'r ', - ymode_write = 'w ', - nincwait = 90, - nmaxwait = 300, - nvers = 917, - ncenter = 215, - ngribout = 1, - num_gribtabs = 17, - yform_read = "ncdf", - nhour_restart = {restart_start:.0f} ,{restart_stop:.0f}, {restart_step:.0f}, ! start, stop and increment in full forecast hours - ydir_restart_in = '{cfg.cosmo_restart_in}', - ydir_restart_out = '{cfg.cosmo_restart_out}', - yform_restart = 'nc-4' - ytunit_restart = 'f', - /END - &GRIBIN - lbdana = .FALSE., - ydirini = '../../int2lm/output/', - ytunitbd = 'd', - lchkini = .TRUE., - hincbound = 3.0, - ydirbd = '../../int2lm/output/', - lchkbd = .TRUE., - lana_qi = .TRUE., - llb_qi = .TRUE., - lana_qg = .FALSE., - llb_qg = .FALSE., - lana_qr_qs = .FALSE., - llb_qr_qs = .FALSE., - lana_rho_snow = .FALSE., - lan_lai = .TRUE., - lan_rootdp = .TRUE., - lan_vio3 = .TRUE., - lan_plcov = .TRUE., - lan_t_cl = .TRUE., - lan_w_cl = .TRUE., - lan_hmo3 = .TRUE., - lan_t_so0 = .TRUE., - lan_t_snow = .TRUE., - lan_w_snow = .TRUE., - lan_w_i = .TRUE., - lan_rho_snow = .TRUE., - newbc = 0, - hnewbcdt = 3.0, -/ -&GRIBOUT - ytunit = 'd', - lanalysis = .FALSE., - yform_write = 'ncdf', ! grb1 or ncdf - hcomb = 0,8761,1, - l_z_filter = .FALSE., - l_p_filter = .FALSE., - luvmasspoint = .FALSE., - l_fi_pmsl_smooth = .FALSE., - lcheck = .TRUE., - ydir = '../output/', - ysuffix = '', - yvarsl = '', - zlev = 750.,1000.,2000.,3000.,4000.,5000.,8500.,10500., - plev = 100.,150.,200.,250.,300.,350.,400.,450.,500.,550.,600.,650., - 700.,750.,800.,850.,900.,925.,950.,1000., - nunit_of_time = 1 - yvarml = 'U_10M', ! 10m u-wind (m s-1) - 'V_10M', ! 10m v-wind (m s-1) - 'T_2M', ! 2m temperature (K) - 'TD_2M', ! 2m dew point temperature (K) - 'RELHUM_2M', ! 2m relative humidity (%) - 'CLCT', ! total cloud cover (%) - 'CLCH', ! cloud cover of high clouds (%) - 'CLCM', ! cloud cover of medium clouds (%) - 'CLCL', ! cloud cover of low clouds (%) - 'T_S', ! surface temperature (K) - 'QV_S', ! surfrace specific humidity (kg kg-1) - 'PS', ! surface pressure (Pa) - 'PMSL', ! surface pressure reduced to N.N. (Pa) - 'W_SNOW', ! snow cover water content (kg m-2) - 'H_SNOW', ! height of snow covera (m) - 'RAIN_GSP', ! accumulated large scale rainfall amount (kg m-2) - 'SNOW_GSP', ! accumulated large scale snowfall amount (kg m-2) - 'TOT_PREC', ! accumulated total precipitation (kg m-2) - 'PRR_GSP', ! large-scale rain rate (kg s-1 m-2) - 'PRS_GSP', ! large-scale snow rate (kg s-1 m-2) - 'PRG_GSP', ! large-scale graupel rate (kg s-1 m-2) - 'TWATER', ! liquid water path (kg m-2) - 'TQV', ! integrated water vapor (kg m-2) - 'TQC', ! cloud water path (kg m-2) - 'TQI', ! ice water path (kg m-2) - 'TQR', ! rain water path (kg m-2) - 'TQS', ! snow water path (kg m-2) - 'TQG', ! graupel water path (kg m-2) - 'Z0', ! surface roughness length (m) - 'TCM', ! turbulent transfer coefficient for momentum (-) - 'TCH', ! turbulent transfer coefficient for heat/moisture (-) - 'HPBL', ! boundary layer height (m) - 'ALB_RAD', ! surface short-wave albedo (%) - 'AUMFL_S', ! averaged u-component of momentum flux (N m-2) - 'AVMFL_S', ! averaged v-component of momentum flux (N m-2) - 'ALHFL_S', ! averaged latent heat flux (W m-2) - 'ASHFL_S', ! averaged sensible heat flux (W m-2) - 'ASOB_S', ! averaged short-wave radiative budget (W m-2) - 'ATHB_S', ! averaged long-wave radiative budget (W m-2) - 'APAB_S', ! averaged photosynthetic active radiation (W m-2) - 'ASWDIFU_S', ! averaged short wave diffuse upward radiation (W m-2) - 'ATHD_S', ! averaged long wave downward radiation (W m-2) - 'ASWDIR_S', ! averaged short wave direct downward radiation (W m-2) - 'ASWDIFD_S', ! averaged short wave diffuse downward radiation (W m-2) - 'SWDIRS_RAD',! short wave direct downward radiation (W m-2) - 'SWDIFDS_RAD',!short wave diffuse downward radiation (W m-2 - 'PABS_RAD', ! photosynthetic active radiation (W m-2) - 'T_SO', ! soil temperature (K) - 'W_SO', ! soil water content (kg m-2) - 'W_SO_ICE', ! soil ice content (kg m-2) - 'U', ! zonal wind-component (m s-1) - 'V', ! meridional wind-component (m s-1) - 'W', ! vertical wind speed (m s-1) - 'T', ! air temperature (K) - 'P', ! air pressure (Pa) - 'QV', ! specific humidity (kg kg-1) - 'QC', ! specific cloud-water content (kg kg-1) - 'QI', ! specific cloud-ice content (kg kg-1) - 'QR', ! specific cloud-ice content (kg kg-1) - 'QS', ! specific cloud-ice content (kg kg-1) - 'CLC', ! layer cloud area fraction (%) - 'TKE', ! turbulent kinetic energy (m2 s-2) - 'TKVH', ! atmosphere heat diffusivity (for Arjo) - 'CO2_BG', - 'CO_BG', - 'C14_BG', - 'CO2_FF1', - 'CO2_FF2', - 'CO2_FF3', - 'CO2_FF4', - 'CO2_FF5', - 'CO2_FF6', - 'CO2_BF1', - 'CO2_BF2', - 'CO2_BF3', - 'CO2_BF4', - 'CO2_BF5', - 'CO2_BF6', - 'CO2_NC1', - 'CO2_NC2', - 'CO2_NC3', - 'CO2_NC4', - 'CO2_NC5', - 'CO2_NC6', - 'CO_FF1', - 'CO_FF2', - 'CO_FF3', - 'CO_FF4', - 'CO_FF5', - 'CO_FF6', - 'CO_BF1', - 'CO_BF2', - 'CO_BF3', - 'CO_BF4', - 'CO_BF5', - 'CO_BF6', - 'CO_NC1', - 'CO_NC2', - 'CO_NC3', - 'CO_NC4', - 'CO_NC5', - 'CO_NC6', - 'C14_BF1', - 'C14_BF2', - 'C14_BF3', - 'C14_BF4', - 'C14_BF5', - 'C14_BF6', - 'C14_NUC1', - 'C14_NUC2', - 'C14_NUC3', - 'C14_NUC4', - 'C14_NUC5', - 'C14_NUC6', - 'CO2_GPP1', - 'CO2_GPP2', - 'CO2_GPP3', - 'CO2_GPP4', - 'CO2_GPP5', - 'CO2_GPP6', - 'CO2_RA1', - 'CO2_RA2', - 'CO2_RA3', - 'CO2_RA4', - 'CO2_RA5', - 'CO2_RA6', - 'C14_NPP1', - 'C14_NPP2', - 'C14_NPP3', - 'C14_NPP4', - 'C14_NPP5', - 'C14_NPP6', - 'C14_NPN1', - 'C14_NPN2', - 'C14_NPN3', - 'C14_NPN4', - 'C14_NPN5', - 'C14_NPN6', - 'C14_HR1', - 'C14_HR2', - 'C14_HR3', - 'C14_HR4', - 'C14_HR5', - 'C14_HR6', - 'CO2_O_P', - 'CO2_O_N', - 'CO_O_P', - 'CO_O_N', - 'C14_O_P', - 'C14_O_N', -/END - - diff --git a/cases/che-wp4/cosmo_INPUT_ORG.cfg b/cases/che-wp4/cosmo_INPUT_ORG.cfg deleted file mode 100644 index 704a68d7..00000000 --- a/cases/che-wp4/cosmo_INPUT_ORG.cfg +++ /dev/null @@ -1,60 +0,0 @@ -&LMGRID -! European grid with 0.05 resolution - ie_tot = 760, - je_tot = 610, - ke_tot = 60, - pollon = -170, ! origin lon: 10.0 - pollat = 43, ! origin lat: 47.0 - dlon = 0.05, - dlat = 0.05, - startlat_tot = -11., - startlon_tot = -17., -/ -&RUNCTL - dt = 50.0, - hstart = {cfg.hstart}, - hstop = {cfg.hstop}, - ydate_ini = '{cfg.inidate_yyyymmddhh}', - nprocx = {cfg.cosmo_np_x}, - nprocy = {cfg.cosmo_np_y}, - nprocio = 0, - hincmxt = 1.0, - nblock = 1, - lphys = .TRUE., - luse_rttov = .FALSE., - luseobs = .TRUE., ! turn on/off nudging - leps = .FALSE., - lreorder = .FALSE., - lreproduce = .TRUE., - itype_timing = 1, - ldiagnos = .TRUE., - ldfi = .FALSE., - ldump_ascii = .FALSE., - ldatatypes = .FALSE., - ltime_barrier = .TRUE., - num_asynio_comm = {cfg.cosmo_np_io}, - num_iope_percomm = {cfg.num_iope_percomm}, - idbg_level = 10, - nboundlines = 3, -/ -&TUNING - tkhmin=0.4, - tkmmin=0.4, - rlam_mom=0.0, - rlam_heat=1.0, - rat_sea=20.0, - rat_lam=1.0, - rat_can=1.0, - c_lnd=2.0, - c_sea=1.5, - c_soil=1.0, - pat_len=500.0, - z0m_dia=0.2, - crsmin=150.0, - clc_diag=0.5, - qc0=0.0, - mu_rain=0.0, - rain_n0_factor=1.0, - v0snow=25.0, - a_hshr=1.0, -/END diff --git a/cases/che-wp4/cosmo_INPUT_PHY.cfg b/cases/che-wp4/cosmo_INPUT_PHY.cfg deleted file mode 100644 index 809956ed..00000000 --- a/cases/che-wp4/cosmo_INPUT_PHY.cfg +++ /dev/null @@ -1,46 +0,0 @@ - &PHYCTL - lseaice=.false., - llake=.false., - lgsp = .TRUE., - lgsp_first=.TRUE., - itype_gscp=3, - ldiniprec=.FALSE., - lrad = .TRUE., - hincrad = 1.0, - lradtopo=.FALSE., - lforest =.TRUE., - ltur = .TRUE., - loldtur=.TRUE., - itype_vdif=-1, - ninctura=1, - lexpcor=.false., - ltmpcor=.false., - lprfcor=.false., - lnonloc=.false., - lcpfluc=.false., - itype_turb=3, - imode_turb=1, - itype_tran=2, - imode_tran=1, - ltkesso=.true., - ltkeshs=.FALSE., - limpltkediff=.true., - itype_wcld=2, - icldm_rad=4, - icldm_turb=2, - icldm_tran=0, - itype_synd=2, - itype_sher=0, - lsoil = .TRUE., - lmelt=.TRUE., - lmelt_var=.TRUE., - itype_evsl=2, - itype_trvg=2, - lconv = .FALSE., - itype_conv=0, - nincconv=5, - lcape = .false., - lconf_avg=.false., - lsso = .FALSE., ! FUO TODO this should be .true., but currently is not supported! - /END - diff --git a/cases/che-wp4/cosmo_runjob.cfg b/cases/che-wp4/cosmo_runjob.cfg deleted file mode 100644 index b5ab4f1e..00000000 --- a/cases/che-wp4/cosmo_runjob.cfg +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name="cosmo_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --time={cfg.cosmo_walltime} -#SBATCH --nodes={cfg.cosmo_np_tot} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --hint=nomultithread -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.cosmo_work} - -export MALLOC_MMAP_MAX_=0 -export MALLOC_TRIM_THRESHOLD_=536870912 -export OMP_NUM_THREADS=1 - -{cfg.mpich_cuda} - -# Set this to avoid segmentation faults -ulimit -s unlimited -ulimit -a - -# clean up -rm -f YU* -rm -f M_* -rm -f core.* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u ./cosmo >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo "Executing COSMO failed" >> {logfile}; exit 1; }} - -# check whether COSMO was successful by calculating name of the last -# output file that should have been created - -hoursSim=$(expr {cfg.hstop} % 24) -daysSim=$(expr {cfg.hstop} / 24) # bash does not know floating points, it truncates to integer -hoursSimNice=$(printf "%02d" $hoursSim) -daysSimNice=$(printf "%02d" $daysSim) -lastHourFile="lfff${{daysSimNice}}${{hoursSimNice}}0000.nc" - -[[ ! -f {cfg.cosmo_output}${{lastHourFile}} ]] || {{ echo "COSMO failed" >> {logfile}; exit 1; }} - -# copy log file -cp {logfile} {logfile_finish} - diff --git a/cases/che-wp4/cosmo_tracers.csv b/cases/che-wp4/cosmo_tracers.csv deleted file mode 100644 index 96d6b9e5..00000000 --- a/cases/che-wp4/cosmo_tracers.csv +++ /dev/null @@ -1,92 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,101,13,0,0,kg kg-1,time-varying_CO2_mass_fraction_at_lateral_boundary,time-varying_CO2_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CO_BG,102,13,0,0,kg kg-1,time-varying_CO_mass_fraction_at_lateral_boundary,time-varying_CO_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,C14_BG,106,13,0,0,kg kg-1,time-varying_14C02_at_lateral_boundary,time-varying_14C02_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1,110,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF2,111,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF3,112,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF4,113,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF5,114,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF6,115,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF1,116,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF2,117,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF3,118,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF4,119,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF5,120,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF6,121,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC1,122,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC2,123,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC3,124,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC4,125,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC5,126,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC6,127,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF1,128,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF2,129,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF3,130,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF4,131,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF5,132,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF6,133,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF1,134,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF2,135,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF3,136,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF4,137,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF5,138,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF6,139,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC1,190,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC2,191,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC3,192,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC4,193,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC5,194,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC6,195,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF1,140,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF2,141,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF3,142,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF4,143,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF5,144,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF6,145,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC1,146,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC2,147,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC3,148,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC4,149,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC5,150,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC6,151,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1,152,13,1,0,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP2,153,13,1,0,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP3,154,13,1,0,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP4,155,13,1,0,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP5,156,13,1,0,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP6,157,13,1,0,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA1,158,13,1,0,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA2,159,13,1,0,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA3,160,13,1,0,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA4,161,13,1,0,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA5,162,13,1,0,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA6,163,13,1,0,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP1,164,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP2,165,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP3,166,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP4,167,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP5,168,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP6,169,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN1,170,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN2,171,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN3,172,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN4,173,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN5,174,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN6,175,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR1,176,13,1,0,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR2,177,13,1,0,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR3,178,13,1,0,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR4,179,13,1,0,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR5,180,13,1,0,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR6,181,13,1,0,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,, -,CO2_O_P,182,13,1,0,kg kg-1,Positive_CO2_mass_fraction_by_ocean_processes,Positive_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_O_N,183,13,1,0,kg kg-1,Negative_CO2_mass_fraction_by_ocean_processes,Negative_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_P,184,13,1,0,kg kg-1,Positive_CO_mass_fraction_by_ocean_processes,Positive_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_N,185,13,1,0,kg kg-1,Negative_CO_mass_fraction_by_ocean_processes,Negative_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_P,186,13,1,0,kg kg-1,Positive_14CO2_mass_fraction_by_ocean_processes,Positive_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_N,187,13,1,0,kg kg-1,Negative_14CO2_mass_fraction_by_ocean_processes,Negative_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, diff --git a/cases/che-wp4/cosmo_tracers_full.csv b/cases/che-wp4/cosmo_tracers_full.csv deleted file mode 100644 index 80eb17c7..00000000 --- a/cases/che-wp4/cosmo_tracers_full.csv +++ /dev/null @@ -1,92 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,101,13,0,0,kg kg-1,time-varying_CO2_mass_fraction_at_lateral_boundary,time-varying_CO2_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CO_BG,102,13,0,0,kg kg-1,time-varying_CO_mass_fraction_at_lateral_boundary,time-varying_CO_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,C14_BG,106,13,0,0,kg kg-1,time-varying_14C02_at_lateral_boundary,time-varying_14C02_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1,110,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF2,111,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF3,112,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF4,113,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF5,114,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF6,115,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF1,116,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF2,117,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF3,118,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF4,119,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF5,120,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF6,121,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC1,122,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC2,123,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC3,124,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC4,125,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC5,126,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC6,127,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF1,128,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF2,129,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF3,130,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF4,131,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF5,132,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF6,133,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF1,134,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF2,135,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF3,136,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF4,137,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF5,138,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF6,139,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC1,190,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC2,191,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC3,192,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC4,193,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC5,194,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC6,195,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF1,140,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF2,141,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF3,142,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF4,143,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF5,144,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF6,145,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC1,146,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC2,147,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC3,148,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC4,149,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC5,150,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC6,151,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1,152,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP2,153,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP3,154,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP4,155,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP5,156,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP6,157,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA1,158,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA2,159,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA3,160,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA4,161,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA5,162,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA6,163,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP1,164,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP2,165,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP3,166,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP4,167,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP5,168,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP6,169,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN1,170,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN2,171,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN3,172,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN4,173,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN5,174,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN6,175,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR1,176,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR2,177,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR3,178,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR4,179,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR5,180,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR6,181,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,, -,CO2_O_P,182,13,0,1,kg kg-1,Positive_CO2_mass_fraction_by_ocean_processes,Positive_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_O_N,183,13,0,1,kg kg-1,Negative_CO2_mass_fraction_by_ocean_processes,Negative_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_P,184,13,0,1,kg kg-1,Positive_CO_mass_fraction_by_ocean_processes,Positive_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_N,185,13,0,1,kg kg-1,Negative_CO_mass_fraction_by_ocean_processes,Negative_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_P,186,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_ocean_processes,Positive_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_N,187,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_ocean_processes,Negative_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, diff --git a/cases/che-wp4/cosmo_tracers_noohchem.csv b/cases/che-wp4/cosmo_tracers_noohchem.csv deleted file mode 100644 index e7845aad..00000000 --- a/cases/che-wp4/cosmo_tracers_noohchem.csv +++ /dev/null @@ -1,86 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,101,13,0,0,kg kg-1,time-varying_CO2_mass_fraction_at_lateral_boundary,time-varying_CO2_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CO_BG,102,13,0,0,kg kg-1,time-varying_CO_mass_fraction_at_lateral_boundary,time-varying_CO_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,C14_BG,106,13,0,0,kg kg-1,time-varying_14C02_at_lateral_boundary,time-varying_14C02_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1,110,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF2,111,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF3,112,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF4,113,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF5,114,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_FF6,115,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF1,116,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF2,117,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF3,118,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF4,119,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF5,120,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF6,121,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC1,122,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC2,123,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC3,124,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC4,125,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC5,126,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC6,127,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF1,128,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF2,129,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF3,130,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF4,131,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF5,132,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF6,133,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF1,134,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF2,135,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF3,136,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF4,137,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF5,138,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF6,139,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF1,140,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF2,141,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF3,142,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF4,143,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF5,144,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF6,145,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC1,146,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC2,147,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC3,148,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC4,149,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC5,150,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC6,151,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1,152,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP2,153,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP3,154,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP4,155,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP5,156,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_GPP6,157,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA1,158,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA2,159,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA3,160,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA4,161,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA5,162,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA6,163,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP1,164,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP2,165,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP3,166,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP4,167,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP5,168,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP6,169,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN1,170,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN2,171,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN3,172,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN4,173,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN5,174,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN6,175,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR1,176,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR2,177,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR3,178,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR4,179,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR5,180,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR6,181,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,, -,CO2_O_P,182,13,0,1,kg kg-1,Positive_CO2_mass_fraction_by_ocean_processes,Positive_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_O_N,183,13,0,1,kg kg-1,Negative_CO2_mass_fraction_by_ocean_processes,Negative_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_P,184,13,0,1,kg kg-1,Positive_CO_mass_fraction_by_ocean_processes,Positive_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_N,185,13,0,1,kg kg-1,Negative_CO_mass_fraction_by_ocean_processes,Negative_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_P,186,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_ocean_processes,Positive_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_N,187,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_ocean_processes,Negative_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, diff --git a/cases/che-wp4/cosmo_tracers_ohchem.csv b/cases/che-wp4/cosmo_tracers_ohchem.csv deleted file mode 100644 index 2174cee9..00000000 --- a/cases/che-wp4/cosmo_tracers_ohchem.csv +++ /dev/null @@ -1,89 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl,loh_chem -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,101,13,0,0,kg kg-1,time-varying_CO2_mass_fraction_at_lateral_boundary,time-varying_CO2_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,,,.FALSE. -,CO_BG,102,13,0,0,kg kg-1,time-varying_CO_mass_fraction_at_lateral_boundary,time-varying_CO_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,,,.FALSE. -,CO_BG_OH,103,13,0,0,kg kg-1,CO_BG_plus_OH_chemistry,CO_BG_plus_OH_chemistry,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,,,.TRUE. -,CO_noBG,104,13,0,0,kg kg-1,CO_mass_fraction_from_initial_condition,CO_mass_fraction_from_initial_condition,on,off,1D,on,file,zero,zero_flux,full,on,off,.FALSE.,0,,,,,.FALSE. -,CO_noBGOH,105,13,0,0,kg kg-1,CO_noBG_plus_OH_chemistry,CO_noBG_plus_OH_chemistry,on,off,1D,on,file,zero,zero_flux,full,on,off,.FALSE.,0,,,,,.TRUE. -,C14_BG,106,13,0,0,kg kg-1,time-varying_14C02_at_lateral_boundary,time-varying_14C02_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,,,.FALSE. -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1,110,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_FF2,111,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_FF3,112,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_FF4,113,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_FF5,114,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_FF6,115,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_BF1,116,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_BF2,117,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_BF3,118,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_BF4,119,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_BF5,120,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_BF6,121,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_NC1,122,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_NC2,123,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_NC3,124,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_NC4,125,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_NC5,126,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_NC6,127,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_FF1,128,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_FF2,129,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_FF3,130,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_FF4,131,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_FF5,132,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_FF6,133,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_BF1,134,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_BF2,135,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_BF3,136,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_BF4,137,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_BF5,138,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_BF6,139,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_BF1,140,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_BF2,141,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_BF3,142,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_BF4,143,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_BF5,144,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_BF6,145,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NUC1,146,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NUC2,147,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NUC3,148,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NUC4,149,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NUC5,150,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NUC6,151,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1,152,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_GPP2,153,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_GPP3,154,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_GPP4,155,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_GPP5,156,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_GPP6,157,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_RA1,158,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_RA2,159,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_RA3,160,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_RA4,161,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_RA5,162,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_RA6,163,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPP1,164,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPP2,165,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPP3,166,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPP4,167,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPP5,168,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPP6,169,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPN1,170,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPN2,171,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPN3,172,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPN4,173,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPN5,174,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_NPN6,175,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_HR1,176,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_HR2,177,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_HR3,178,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_HR4,179,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_HR5,180,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_HR6,181,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -#,,,,,,,,,,,,,,,,,,,, -,CO2_O_P,182,13,0,1,kg kg-1,Positive_CO2_mass_fraction_by_ocean_processes,Positive_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO2_O_N,183,13,0,1,kg kg-1,Negative_CO2_mass_fraction_by_ocean_processes,Negative_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_O_P,184,13,0,1,kg kg-1,Positive_CO_mass_fraction_by_ocean_processes,Positive_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,CO_O_N,185,13,0,1,kg kg-1,Negative_CO_mass_fraction_by_ocean_processes,Negative_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_O_P,186,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_ocean_processes,Positive_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. -,C14_O_N,187,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_ocean_processes,Negative_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,,,.FALSE. diff --git a/cases/che-wp4/cosmo_tracers_reduced.csv b/cases/che-wp4/cosmo_tracers_reduced.csv deleted file mode 100644 index 799e83f6..00000000 --- a/cases/che-wp4/cosmo_tracers_reduced.csv +++ /dev/null @@ -1,92 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,101,13,0,0,kg kg-1,time-varying_CO2_mass_fraction_at_lateral_boundary,time-varying_CO2_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CO_BG,102,13,0,0,kg kg-1,time-varying_CO_mass_fraction_at_lateral_boundary,time-varying_CO_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,C14_BG,106,13,0,0,kg kg-1,time-varying_14C02_at_lateral_boundary,time-varying_14C02_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1,110,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF2,111,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF3,112,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF4,113,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF5,114,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF6,115,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF1,116,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF2,117,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF3,118,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF4,119,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF5,120,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF6,121,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC1,122,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC2,123,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC3,124,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC4,125,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC5,126,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC6,127,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF1,128,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF2,129,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF3,130,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF4,131,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF5,132,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF6,133,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF1,134,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF2,135,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF3,136,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF4,137,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF5,138,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF6,139,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC1,190,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC2,191,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC3,192,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC4,193,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC5,194,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC6,195,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF1,140,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF2,141,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF3,142,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF4,143,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF5,144,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF6,145,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC1,146,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC2,147,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC3,148,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC4,149,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC5,150,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC6,151,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1,152,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP2,153,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP3,154,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP4,155,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP5,156,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP6,157,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA1,158,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA2,159,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA3,160,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA4,161,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA5,162,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA6,163,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP1,164,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP2,165,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP3,166,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP4,167,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP5,168,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP6,169,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN1,170,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN2,171,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN3,172,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN4,173,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN5,174,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN6,175,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR1,176,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR2,177,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR3,178,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR4,179,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR5,180,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR6,181,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,, -,CO2_O_P,182,13,0,1,kg kg-1,Positive_CO2_mass_fraction_by_ocean_processes,Positive_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_O_N,183,13,0,1,kg kg-1,Negative_CO2_mass_fraction_by_ocean_processes,Negative_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_P,184,13,0,1,kg kg-1,Positive_CO_mass_fraction_by_ocean_processes,Positive_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_N,185,13,0,1,kg kg-1,Negative_CO_mass_fraction_by_ocean_processes,Negative_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_P,186,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_ocean_processes,Positive_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_N,187,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_ocean_processes,Negative_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero,zero_flux,full,off,on,.FALSE.,0,,,, diff --git a/cases/che-wp4/cosmo_tracers_reduced_zerograd.csv b/cases/che-wp4/cosmo_tracers_reduced_zerograd.csv deleted file mode 100644 index 38470581..00000000 --- a/cases/che-wp4/cosmo_tracers_reduced_zerograd.csv +++ /dev/null @@ -1,92 +0,0 @@ -,yshort_name,igribparam,igribtable,itype_emiss,itype_flux,yunits,ystandard_name,ylong_name,ytype_adv,ytype_diff,ytype_turbmix,ytype_passconv,ytype_ini,ytype_lbc,ytype_bbc,ytype_relax,ytype_damp,ytype_clip,ldecay,lifetime,itype_tscale,ycatl,ytpl,yvpl -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,101,13,0,0,kg kg-1,time-varying_CO2_mass_fraction_at_lateral_boundary,time-varying_CO2_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,CO_BG,102,13,0,0,kg kg-1,time-varying_CO_mass_fraction_at_lateral_boundary,time-varying_CO_mass_fraction_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -,C14_BG,106,13,0,0,kg kg-1,time-varying_14C02_at_lateral_boundary,time-varying_14C02_at_lateral_boundary,on,off,1D,on,file,file,zero_flux,full,on,off,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1,110,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF2,111,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF3,112,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF4,113,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF5,114,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_FF6,115,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_BF1,116,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF2,117,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF3,118,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF4,119,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF5,120,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_BF6,121,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_NC1,122,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC2,123,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC3,124,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC4,125,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC5,126,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_NC6,127,13,1,0,kg kg-1,CO2_mass_fraction_by_non_combustion_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_FF1,128,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF2,129,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF3,130,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF4,131,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF5,132,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_FF6,133,13,1,0,kg kg-1,CO2_mass_fraction_by_fossil_fuel_emissions,CO2_mass_fraction_by_fossil_fuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_BF1,134,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF2,135,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF3,136,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF4,137,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF5,138,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_BF6,139,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_NC1,190,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC2,191,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC3,192,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC4,193,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC5,194,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO_NC6,195,13,1,0,kg kg-1,CO_mass_fraction_by_non_combustion_emissions,CO_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_BF1,140,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF2,141,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF3,142,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF4,143,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF5,144,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_BF6,145,13,1,0,kg kg-1,CO2_mass_fraction_by_biofuel_emissions,CO2_mass_fraction_by_biofuel_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NUC1,146,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC2,147,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC3,148,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC4,149,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC5,150,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NUC6,151,13,1,0,kg kg-1,CO2_mass_fraction_by_nuclear_emissions,CO2_mass_fraction_by_nuclear_emissions,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1,152,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP2,153,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP3,154,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP4,155,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP5,156,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_GPP6,157,13,0,1,kg kg-1,CO2_mass_fraction_by_GPP,CO2_mass_fraction_by_GPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_RA1,158,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA2,159,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA3,160,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA4,161,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA5,162,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,CO2_RA6,163,13,0,1,kg kg-1,CO2_mass_fraction_by_RA,CO2_mass_fraction_by_RA,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPP1,164,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP2,165,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP3,166,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP4,167,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP5,168,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPP6,169,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_NPP,Positive_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_NPN1,170,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN2,171,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN3,172,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN4,173,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN5,174,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_NPN6,175,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_NPP,Negative_CO2_mass_fraction_by_NPP,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_HR1,176,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR2,177,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR3,178,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR4,179,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR5,180,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,C14_HR6,181,13,0,1,kg kg-1,14CO2_mass_fraction_by_HR,CO2_mass_fraction_by_HR,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -#,,,,,,,,,,,,,,,,,,,, -,CO2_O_P,182,13,0,1,kg kg-1,Positive_CO2_mass_fraction_by_ocean_processes,Positive_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO2_O_N,183,13,0,1,kg kg-1,Negative_CO2_mass_fraction_by_ocean_processes,Negative_CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_P,184,13,0,1,kg kg-1,Positive_CO_mass_fraction_by_ocean_processes,Positive_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,CO_O_N,185,13,0,1,kg kg-1,Negative_CO_mass_fraction_by_ocean_processes,Negative_CO_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_P,186,13,0,1,kg kg-1,Positive_14CO2_mass_fraction_by_ocean_processes,Positive_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, -,C14_O_N,187,13,0,1,kg kg-1,Negative_14CO2_mass_fraction_by_ocean_processes,Negative_14CO2_mass_fraction_by_ocean_processes,on,off,1D,on,zero,zero_gradient,zero_flux,full,off,on,.FALSE.,0,,,, diff --git a/cases/che-wp4/int2lm_INPUT.cfg b/cases/che-wp4/int2lm_INPUT.cfg deleted file mode 100644 index 999bdf8c..00000000 --- a/cases/che-wp4/int2lm_INPUT.cfg +++ /dev/null @@ -1,203 +0,0 @@ -&CONTRL - yinput_model = 'IFS', ! string to identify the input model - ydate_ini = '{cfg.inidate_int2lm_yyyymmddhh}', ! start of the forecast - - hstart = {cfg.hstart_int2lm}, ! first hour to be processed - hstop = {cfg.hstop_int2lm}, ! last hour to be processed - hincbound = 3.0, ! increment in hours for the processing - - nprocx = {cfg.int2lm_np_x}, ! number of processors in east-west direction - nprocy = {cfg.int2lm_np_y}, ! number of processors in north-south direction - nprocio = {cfg.cosmo_np_io}, ! number of extra processors for asynchronous IO - nincwait = 30, ! seconds to wait until next attempt if a ready file is - ! not available - nmaxwait = 300, ! maximum seconds to wait until abort if a ready file is - ! not available - - - - norder_filter = 5, ! order of the orography filtering - ilow_pass_oro = 4, ! type of low-pass filter for orography - numfilt_oro = 1, ! number of sequential applications of filter - ilow_pass_xso = 5, ! type of low-pass filter for extra smoothing steep oro. - numfilt_xso = 1, ! number of sequential applications of xso-filter - itype_w_so_rel = 1, ! type of relative soil moisture input (0,1,2) - idbg_level = 3, ! to control verbosity of debug output - itype_balance_pp = 2, ! To choose the previous (=1) or new (=2) method for - ! hydrostatic pressure calculation in case of - ! non-hydrostatic input models - - eps_filter = 0.1, ! parameter for orography filtering - rxso_mask = 750.0, ! mask for extra smoothing of steep oro.: dh > rxso_mask - rfill_valley = 0.0, ! mask for valley filling: dh > rfill_valley - - luse_t_skin = .TRUE., ! if .TRUE., use ECMWF skin temperature for surface - lpost_0006 = .TRUE., ! if .TRUE., force to use ECMWF dataset after 27 June 2000 - luvcor = .TRUE., ! if .TRUE., correct winds for given surface pres. tendency - lvertwind_ini = .TRUE., ! if .TRUE., compute vertical wind for LM for initial data - lvertwind_bd = .TRUE., ! if .TRUE., compute vertical wind for LM for boundary data - ! (MeteoSwiss uses .FALSE.) - lprog_qi = .TRUE., ! if .TRUE., interpolate qi to LM grid - lprog_qr_qs = .FALSE., ! if .TRUE., interpolate qr,qs to LM grid - lprog_qg = .FALSE., ! if .TRUE., interpolate qg to LM grid - lprog_rho_snow = .FALSE., ! if .TRUE., interpolate rho_snow to LM grid - ! for ICON input - ! (MeteoSwiss uses .TRUE.) - linitial = .TRUE., ! if .TRUE., initial data for LM - lboundaries = .TRUE., ! if .TRUE., lateral boundaries for LM - ltime_mean = .TRUE., ! if .TRUE., mean values of the timings are printed - lmulti_layer_lm = {cfg.multi_layer}, ! compute data for multi-layer soil model - lmulti_layer_in = .FALSE., ! data from multi-layer soil model in the incoming data - lfilter_oro = .FALSE., ! if .TRUE., filter the orography - lxso_first = .FALSE., ! if .TRUE., do extra smoothing of orography first - lfilter_pp = .TRUE., ! if .TRUE., filter the pressure deviation after vertical - ! vertical interpolation in LM2LM - lbdclim = .FALSE., ! if .TRUE., special boundary data for climate mode - lforest = .TRUE., ! if .TRUE., run with forest (evergreen and deciduous) - lsso = .TRUE., ! process parameters for sso scheme - lradtopo = .FALSE., ! process parameters for topographic correction of radiation - llbc_smooth = .TRUE., ! if .TRUE., run with smooth orography transition to LB - l_art = .TRUE., ! switch for additional cosmo-art fields - l_art_nested = .FALSE., ! switch for cosmo-art2cosmo-art - l_art_file = .TRUE., ! if .TRUE., art namelist is read from INPUT_ART - l_smi = .FALSE., ! if .TRUE., interpolate soil moisture with SMI - ! (MeteoSwiss uses .FALSE.) - lmixcld = .FALSE., ! if .TRUE., qi added in grh instead of being directly - ! interp. - ! (MeteoSwiss uses .FALSE.) - lasync_io = .FALSE., ! if .TRUE.: the model runs with extra PEs for asynchr. IO - l_topo_z = .FALSE., ! if .TRUE., additional smoothing of the topography - ! for the LM-Z coordinate Version - -! Only in COSMO7 -nboundlines=1 -ncomm_type=1 -itype_calendar=0 -nincwait=30 -lante_0006=.FALSE. -qvmin=0.1000E-11 -qcmin=0.1000E-11 -qimin=0.1000E-11 -leps_bc=.FALSE. -ltime_proc=.FALSE. -itype_t_cl=0 -itype_rootdp=0 -itype_ndvi=0 -itype_aerosol=1 -itype_albedo=1 -nhori=24 -lseaice=.FALSE. -llake=.FALSE. -llake_coldstart=.FALSE. -lstomata=.FALSE. -lemiss=.FALSE. -nlbc_smooth=20 -lroutine=.FALSE. -lreorder=.TRUE. -ldatatypes=.FALSE. -lt_cl_corr=.FALSE. -ifill_valley=7 -l_cressman=.FALSE. -l_bicub_spl=.FALSE. -lprintdeb_all=.FALSE. -lurban=.FALSE. - -/ - -&GRID_IN -! IFS grid - ie_in_tot = 871, ! ie (lon) for input grid (total domain) - je_in_tot = 391, ! je (lat) for input grid (total domain) - ke_in_tot = 137, ! ke (levels) for input grid (total domain) I don't know why it's not 100. - - pcontrol_fi=30000., ! Pressure of control level for geopotential - dlat_in = 0.1, - dlon_in = 0.1, - startlat_in_tot = 29.00, - startlon_in_tot = -32., - / - -&LMGRID -! European grid with 0.05 resolution - ielm_tot = 760, - jelm_tot = 610, - kelm_tot = 60, - - ivctype = 2, ! 4 used by MeteoSwiss COSMO-7 -> 1 processing - irefatm = 1, ! used by MeteoSwiss - lanalyt_calc_t0p0 = .TRUE., ! used by MeteoSwiss - vcflat = 11357.0, - vcoord_d = 23588.50,22395.93,21304.04, 20307.39, 19399.95, - 18574.03, 17821.88, 17135.64, 16507.79, 15930.60, - 15396.52, 14897.86, 14427.98, 13981.10, 13551.52, - 13133.53, 12721.37, 12312.04, 11900.03, 11485.37, - 11068.19, 10648.54, 10226.48, 9802.09, 9375.43, - 8946.58, 8515.59, 8082.55, 7647.52, 7210.55, - 6771.96, 6332.38, 5896.41, 5468.04, 5050.84, - 4647.96, 4261.91, 3893.26, 3542.15, 3208.52, - 2892.23, 2593.71, 2312.95, 2049.75, 1803.89, - 1575.57, 1364.68, 1170.90, 993.84, 833.44, - 689.53, 561.52, 448.82, 350.95, 267.55, - 197.67, 137.23, 87.33, 48.44, 20.00, 0.00, - - pollat = 43.0, - pollon = -170.0, - dlon = 0.05, - dlat = 0.05, - startlat_tot = -11., - startlon_tot = -17., - - -lnewVGrid=.FALSE. -irefatm=1 -lanalyt_calc_t0p0=.TRUE. -vcflat=11357.0000 -p0sl=100000.0000 -t0sl=288.1500 -dt0lp=42.0000 -ke_soil_lm=7 - -/ - -&DATABASE -/ - -&DATA - ! General control variables: - ncenter = 98, ! Originating center identification - nprocess_ini = 135, ! Generating process identification for initial values - nprocess_bd = 135, ! Generating process identification for boundary values - ymode_write = 'w b', ! Specify open mode for writing - ytunit_in = 'd', ! Time unit for input data - ytunit_out = 'd', ! Time unit for output data - yinput_type = 'analysis',! Type of input data: - ! ! 'forecast' forecast data - ! ! 'analysis' analysis data - ! ! 'ana_init' initialized analysis data - ! ---------------------------------------------------------------- ! - ! Variables for external data: - ylmext_lfn='{cfg.int2lm_extpar_file}', - ylmext_cat='../input/extpar/', - ylmext_form_read='ncdf', ! Input format of external data - yinext_lfn='eas{cfg.inidate_int2lm_yyyymmddhh}', ! Name of the file with the external fields - yinext_cat='../input/meteo/', - yinext_form_read="apix", ! Input format of external data from coarse grid - ie_ext=800, - je_ext=650, - ! - ! ---------------------------------------------------------------- ! - ! Variables for the models: - yin_cat='../input/meteo/', - yin_form_read='apix', - ylm_cat='../output/', - ylm_form_write = "nc-4", ! Output format of COSMO-Model data -/ - -&PRICTR - igp_tot = 36, 40, 48, 44, 48, 85, 77, - jgp_tot = 30, 94, 38, 26, 26, 96, 12, - lchkin = .TRUE., - lchkout = .TRUE., - lprgp = .FALSE., -/ - diff --git a/cases/che-wp4/int2lm_datasets.csv b/cases/che-wp4/int2lm_datasets.csv deleted file mode 100644 index c2743381..00000000 --- a/cases/che-wp4/int2lm_datasets.csv +++ /dev/null @@ -1,12 +0,0 @@ -,ie_tot,je_tot,ke_tot,startlon_tot,startlat_tot,dlon,dlat,pollat,pollon,polgam,ninc,hinc,lconst_in_time,lconserve_mass,cvertdist,ydirin,ylfn_prefix,yvertical_axis_type,yvertical_method,yvarlist,yinterp_type,ngrid_refine,ycombine_action -#,,,,,,,,,,,,,,,,,,,,,,, -#,360,180,40,-179.5,-89.5,1,1,,,,,3,.TRUE.,.FALSE.,,/store/empa/em05/mjaehn/CHE/input/oh/,OH_07,geometric,I,"OH_FIELD, ",L,,O -,871,391,100,-32,29,0.1,0.1,,,,,3,.FALSE.,.FALSE.,,../input/icbc/,cams_co2_,hyb_sig_pr,I,"CO2_BG,CO_BG",L,,O -,871,391,19,-32,29,0.1,0.1,,,,,3,.FALSE.,.FALSE.,,../input/icbc/,LSCE_d14C_,hyb_sig_pr,I,"C14_BG",L,,O -,764,614,7,-17.1,-11.1,0.05,0.05,43,-170,0,,1,.FALSE.,.FALSE.,,../input/emissions/,emis_,geometric,D,"CO2_FF1_E,CO2_FF2_E,CO2_FF3_E,CO2_FF4_E,CO2_FF5_E,CO2_FF6_E,CO2_BF1_E,CO2_BF2_E,CO2_BF3_E,CO2_BF4_E,CO2_BF5_E,CO2_BF6_E,CO2_NC1_E,CO2_NC2_E,CO2_NC3_E,CO2_NC4_E,CO2_NC5_E,CO2_NC6_E,CO_FF1_E,CO_FF2_E,CO_FF3_E,CO_FF4_E,CO_FF5_E,CO_FF6_E,CO_BF1_E,CO_BF2_E,CO_BF3_E,CO_BF4_E,CO_BF5_E,CO_BF6_E,CO_NC1_E,CO_NC2_E,CO_NC3_E,CO_NC4_E,CO_NC5_E,CO_NC6_E,C14_BF1_E,C14_BF2_E,C14_BF3_E,C14_BF4_E,C14_BF5_E,C14_BF6_E",N,, -,764,614,7,-17.1,-11.1,0.05,0.05,43,-170,0,,1,.FALSE.,.FALSE.,,../input/emissions/,npp_,geometric,D,"C14_NUC1_E,C14_NUC2_E,C14_NUC3_E,C14_NUC4_E,C14_NUC5_E,C14_NUC6_E",N,, -,1440,1080,1,-29.96875,30.020833333333332,0.0625,0.04166666666,,,,,24,.FALSE.,.FALSE.,,../input/emissions/,ocean_,,,"CO2_O_P_E,CO2_O_N_E,CO_O_P_E,CO_O_N_E,C14_O_P_E,C14_O_N_E",N,,A -,764,614,1,-17.1,-11.1,0.05,0.05,43,-170,0,,1,.FALSE.,.FALSE.,,../input/vprm/,vprm_,,,"CO2_GPP1_E,CO2_GPP2_E,CO2_GPP3_E,CO2_GPP4_E,CO2_GPP5_E,CO2_GPP6_E,CO2_RA1_E,CO2_RA2_E,CO2_RA3_E,CO2_RA4_E,CO2_RA5_E,CO2_RA6_E",N,,A -,764,614,1,-17.1,-11.1,0.05,0.05,43,-170,0,,1,.FALSE.,.FALSE.,,../input/vprm/,dc14__,,,"C14_NPP1_E,C14_NPP2_E,C14_NPP3_E,C14_NPP4_E,C14_NPP5_E,C14_NPP6_E",N,,A -,764,614,1,-17.1,-11.1,0.05,0.05,43,-170,0,,1,.FALSE.,.FALSE.,,../input/vprm/,dc14__,,,"C14_NPN1_E,C14_NPN2_E,C14_NPN3_E,C14_NPN4_E,C14_NPN5_E,C14_NPN6_E",N,,A -,764,614,1,-17.1,-11.1,0.05,0.05,43,-170,0,,1,.FALSE.,.FALSE.,,../input/vprm/,dc14__,,,"C14_HR1_E,C14_HR2_E,C14_HR3_E,C14_HR4_E,C14_HR5_E,C14_HR6_E",N,,A diff --git a/cases/che-wp4/int2lm_runjob.cfg b/cases/che-wp4/int2lm_runjob.cfg deleted file mode 100644 index 95ea0c5c..00000000 --- a/cases/che-wp4/int2lm_runjob.cfg +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name=int2lm_{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime} -#SBATCH --time={cfg.int2lm_walltime} -#SBATCH --nodes={cfg.int2lm_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.int2lm_ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --account={cfg.compute_account} -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.int2lm_work} - -# Export env variables -export OMP_NUM_THREADS=1 -export CRAY_CUDA_MPS=1 - -export MALLOC_MMAP_MAX_=0 -export MALLOC_TRIM_THRESHOLD_=536870912 - -# Set this to avoid segmentation faults -ulimit -s unlimited -ulimit -a - -# Load modules for post-processing -module load daint-gpu -module load NCO -module list - -unset G2G -export MV2_USE_CUDA=0 -export MV2_USE_GPUDIRECT=0 - -export api_dir="/users/morsier/install/libgrib_api/1.20.0p4" -export GRIB_DEFINITION_PATH=${{api_dir}}/cosmo_definitions/definitions:${{api_dir}}/share/grib_api/definitions -export GRIB_SAMPLES_PATH=${{api_dir}}/cosmo_definitions/samples -export GRIB_API_DEBUG=0 - -rm -f YU* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u -n {cfg.int2lm_np_tot} ./int2lm >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo \"Executing INT2LM MPI command failed\" >> job.out; exit 1; }} - -# check whether INT2LM was successful by checking for presence of last -# meteofile that should have been processed -firstsecs=$(date -u --date "{ini_day} {ini_hour}" +%s) - -let lastsecs="firstsecs+{cfg.hstop_int2lm}*3600" -lastyyyymmddhh=$(date -u --date "1970-01-01 UTC +${{lastsecs}} sec" +%Y%m%d%H) -lastHourFile="lbfd${{lastyyyymmddhh}}.nc" - -echo last file processed is $lastHourFile >> {logfile} - -[[ ! -f ../output/${{lastHourFile}} ]] && {{ echo "INT2LM failed" >> {logfile}; exit 1; }} - -cp {logfile} {logfile_finish} diff --git a/cases/che-wp4/int2lm_tracers.csv b/cases/che-wp4/int2lm_tracers.csv deleted file mode 100644 index 22740a9b..00000000 --- a/cases/che-wp4/int2lm_tracers.csv +++ /dev/null @@ -1,93 +0,0 @@ -,yshort_name,igribtable,igribparam,irank,yunits,ystandard_name,ylong_name,yfamily,ylsm,lderived,loutput,lrequired,lnested,lcompress,ldryin -#,,,,,,,,,,,,,,,,,,,,, -,CO2_BG,243,101,3,kg kg-1,CO2_mass_fraction_at_lateral_boundary,CO2_mass_fraction_at_lateral_boundary,t, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE. -,C14_BG,243,102,3,kg kg-1,14CO2_at_lateral_boundary,14CO2_at_lateral_boundary,t, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE. -,CO_BG,243,103,3,kg kg-1,CO_mass_fraction_at_lateral_boundary,CO_mass_fraction_at_lateral_boundary,t, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE. -#,OH_FIELD,243,104,3,molecules cm-3,Monthly_OH_field,Monthly_OH_field,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE.,.TRUE.,.FALSE. -#,,,,,,,,,,,,,,,,,,,,, -,CO2_FF1_E,243,123,3,kg m-2 s-1,CO2_flux_from_fossil_fuel_emissions,CO2_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_FF2_E,243,124,3,kg m-2 s-1,CO2_flux_from_fossil_fuel_emissions,CO2_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_FF3_E,243,125,3,kg m-2 s-1,CO2_flux_from_fossil_fuel_emissions,CO2_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_FF4_E,243,126,3,kg m-2 s-1,CO2_flux_from_fossil_fuel_emissions,CO2_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_FF5_E,243,127,3,kg m-2 s-1,CO2_flux_from_fossil_fuel_emissions,CO2_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_FF6_E,243,128,3,kg m-2 s-1,CO2_flux_from_fossil_fuel_emissions,CO2_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_BF1_E,243,129,3,kg m-2 s-1,CO2_flux_from_biofuel_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_BF2_E,243,130,3,kg m-2 s-1,CO2_flux_from_biofuel_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_BF3_E,243,131,3,kg m-2 s-1,CO2_flux_from_biofuel_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_BF4_E,243,132,3,kg m-2 s-1,CO2_flux_from_biofuel_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_BF5_E,243,133,3,kg m-2 s-1,CO2_flux_from_biofuel_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_BF6_E,243,134,3,kg m-2 s-1,CO2_flux_from_biofuel_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_NC1_E,243,201,3,kg m-2 s-1,CO2_flux_from_non_combustion_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_NC2_E,243,202,3,kg m-2 s-1,CO2_flux_from_non_combustion_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_NC3_E,243,203,3,kg m-2 s-1,CO2_flux_from_non_combustion_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_NC4_E,243,204,3,kg m-2 s-1,CO2_flux_from_non_combustion_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_NC5_E,243,205,3,kg m-2 s-1,CO2_flux_from_non_combustion_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_NC6_E,243,206,3,kg m-2 s-1,CO2_flux_from_non_combustion_emissions,CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_FF1_E,243,141,3,kg m-2 s-1,CO_flux_from_fossil_fuel_emissions,CO_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_FF2_E,243,142,3,kg m-2 s-1,CO_flux_from_fossil_fuel_emissions,CO_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_FF3_E,243,143,3,kg m-2 s-1,CO_flux_from_fossil_fuel_emissions,CO_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_FF4_E,243,144,3,kg m-2 s-1,CO_flux_from_fossil_fuel_emissions,CO_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_FF5_E,243,145,3,kg m-2 s-1,CO_flux_from_fossil_fuel_emissions,CO_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_FF6_E,243,146,3,kg m-2 s-1,CO_flux_from_fossil_fuel_emissions,CO_flux_from_fossil_fuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_BF1_E,243,147,3,kg m-2 s-1,CO_flux_from_biofuel_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_BF2_E,243,148,3,kg m-2 s-1,CO_flux_from_biofuel_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_BF3_E,243,149,3,kg m-2 s-1,CO_flux_from_biofuel_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_BF4_E,243,150,3,kg m-2 s-1,CO_flux_from_biofuel_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_BF5_E,243,151,3,kg m-2 s-1,CO_flux_from_biofuel_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_BF6_E,243,152,3,kg m-2 s-1,CO_flux_from_biofuel_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_NC1_E,243,153,3,kg m-2 s-1,CO_flux_from_non_combustion_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_NC2_E,243,154,3,kg m-2 s-1,CO_flux_from_non_combustion_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_NC3_E,243,155,3,kg m-2 s-1,CO_flux_from_non_combustion_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_NC4_E,243,156,3,kg m-2 s-1,CO_flux_from_non_combustion_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_NC5_E,243,157,3,kg m-2 s-1,CO_flux_from_non_combustion_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_NC6_E,243,158,3,kg m-2 s-1,CO_flux_from_non_combustion_emissions,CO_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_BF1_E,243,161,3,kg m-2 s-1,14CO2_flux_from_biofuel_emissions,14CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_BF2_E,243,162,3,kg m-2 s-1,14CO2_flux_from_biofuel_emissions,14CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_BF3_E,243,163,3,kg m-2 s-1,14CO2_flux_from_biofuel_emissions,14CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_BF4_E,243,164,3,kg m-2 s-1,14CO2_flux_from_biofuel_emissions,14CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_BF5_E,243,165,3,kg m-2 s-1,14CO2_flux_from_biofuel_emissions,14CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_BF6_E,243,166,3,kg m-2 s-1,14CO2_flux_from_biofuel_emissions,14CO2_flux_from_biofuel_emissions,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NUC1_E,243,167,3,kg m-2 s-1,14CO2_flux_from_nuclear_power_plants,14CO2_flux_from_nuclear_power_plants,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NUC2_E,243,168,3,kg m-2 s-1,14CO2_flux_from_nuclear_power_plants,14CO2_flux_from_nuclear_power_plants,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NUC3_E,243,169,3,kg m-2 s-1,14CO2_flux_from_nuclear_power_plants,14CO2_flux_from_nuclear_power_plants,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NUC4_E,243,170,3,kg m-2 s-1,14CO2_flux_from_nuclear_power_plants,14CO2_flux_from_nuclear_power_plants,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NUC5_E,243,171,3,kg m-2 s-1,14CO2_flux_from_nuclear_power_plants,14CO2_flux_from_nuclear_power_plants,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NUC6_E,243,172,3,kg m-2 s-1,14CO2_flux_from_nuclear_power_plants,14CO2_flux_from_nuclear_power_plants,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -#,,,,,,,,,,,,,,,,,,,,, -,CO2_O_P_E,243,180,3,kg m-2 s-1,Positive_CO2_flux_from_ocean_processes,Positive_CO2_flux_from_ocean_processes,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_O_N_E,243,181,3,kg m-2 s-1,Negative_CO2_flux_from_ocean_processes,Negative_CO2_flux_from_ocean_processes,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_O_P_E,243,182,3,kg m-2 s-1,Positive_CO_flux_from_ocean_processes,Positive_CO_flux_from_ocean_processes,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO_O_N_E,243,183,3,kg m-2 s-1,Negative_CO_flux_from_ocean_processes,Negative_CO_flux_from_ocean_processes,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_O_P_E,243,184,3,kg m-2 s-1,Positive_14CO2_flux_from_ocean_processes,Positive_14CO2_flux_from_ocean_processes,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_O_N_E,243,185,3,kg m-2 s-1,Negative_14CO2_flux_from_ocean_processes,Negative_14CO2_flux_from_ocean_processes,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -#,,,,,,,,,,,,,,,,,,,,, -,CO2_GPP1_E,243,194,3,kg m-2 s-1,CO2_flux_from_GPP,CO2_flux_from_GPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_GPP2_E,243,195,3,kg m-2 s-1,CO2_flux_from_GPP,CO2_flux_from_GPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_GPP3_E,243,196,3,kg m-2 s-1,CO2_flux_from_GPP,CO2_flux_from_GPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_GPP4_E,243,197,3,kg m-2 s-1,CO2_flux_from_GPP,CO2_flux_from_GPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_GPP5_E,243,198,3,kg m-2 s-1,CO2_flux_from_GPP,CO2_flux_from_GPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_GPP6_E,243,199,3,kg m-2 s-1,CO2_flux_from_GPP,CO2_flux_from_GPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_RA1_E,243,107,3,kg m-2 s-1,CO2_flux_from_RA,CO2_flux_from_RA,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_RA2_E,243,108,3,kg m-2 s-1,CO2_flux_from_RA,CO2_flux_from_RA,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_RA3_E,243,109,3,kg m-2 s-1,CO2_flux_from_RA,CO2_flux_from_RA,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_RA4_E,243,110,3,kg m-2 s-1,CO2_flux_from_RA,CO2_flux_from_RA,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_RA5_E,243,111,3,kg m-2 s-1,CO2_flux_from_RA,CO2_flux_from_RA,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,CO2_RA6_E,243,112,3,kg m-2 s-1,CO2_flux_from_RA,CO2_flux_from_RA,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPP1_E,243,113,3,kg m-2 s-1,Positive_14CO2_flux_from_NPP,Positive_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPP2_E,243,114,3,kg m-2 s-1,Positive_14CO2_flux_from_NPP,Positive_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPP3_E,243,115,3,kg m-2 s-1,Positive_14CO2_flux_from_NPP,Positive_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPP4_E,243,116,3,kg m-2 s-1,Positive_14CO2_flux_from_NPP,Positive_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPP5_E,243,117,3,kg m-2 s-1,Positive_14CO2_flux_from_NPP,Positive_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPP6_E,243,118,3,kg m-2 s-1,Positive_14CO2_flux_from_NPP,Positive_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPN1_E,243,119,3,kg m-2 s-1,Negative_14CO2_flux_from_NPP,Negative_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPN2_E,243,120,3,kg m-2 s-1,Negative_14CO2_flux_from_NPP,Negative_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPN3_E,243,121,3,kg m-2 s-1,Negative_14CO2_flux_from_NPP,Negative_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPN4_E,243,122,3,kg m-2 s-1,Negative_14CO2_flux_from_NPP,Negative_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPN5_E,243,186,3,kg m-2 s-1,Negative_14CO2_flux_from_NPP,Negative_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_NPN6_E,243,187,3,kg m-2 s-1,Negative_14CO2_flux_from_NPP,Negative_14CO2_flux_from_NPP,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_HR1_E,243,188,3,kg m-2 s-1,14CO2_flux_from_HR,14CO2_flux_from_HR,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_HR2_E,243,189,3,kg m-2 s-1,14CO2_flux_from_HR,14CO2_flux_from_HR,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_HR3_E,243,190,3,kg m-2 s-1,14CO2_flux_from_HR,14CO2_flux_from_HR,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_HR4_E,243,191,3,kg m-2 s-1,14CO2_flux_from_HR,14CO2_flux_from_HR,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_HR5_E,243,192,3,kg m-2 s-1,14CO2_flux_from_HR,14CO2_flux_from_HR,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. -,C14_HR6_E,243,193,3,kg m-2 s-1,14CO2_flux_from_HR,14CO2_flux_from_HR,e, ,.FALSE.,.TRUE.,.FALSE.,.FALSE.,.TRUE. diff --git a/cases/che-wp4/tracerlist.txt b/cases/che-wp4/tracerlist.txt deleted file mode 100644 index 023c27ec..00000000 --- a/cases/che-wp4/tracerlist.txt +++ /dev/null @@ -1,86 +0,0 @@ -yshort_name - -CO2_BG -CO_BG -C14_BG - -CO2_FF1 -CO2_FF2 -CO2_FF3 -CO2_FF4 -CO2_FF5 -CO2_FF6 -CO2_BF1 -CO2_BF2 -CO2_BF3 -CO2_BF4 -CO2_BF5 -CO2_BF6 -CO2_NC1 -CO2_NC2 -CO2_NC3 -CO2_NC4 -CO2_NC5 -CO2_NC6 -CO_FF1 -CO_FF2 -CO_FF3 -CO_FF4 -CO_FF5 -CO_FF6 -CO_BF1 -CO_BF2 -CO_BF3 -CO_BF4 -CO_BF5 -CO_BF6 -C14_BF1 -C14_BF2 -C14_BF3 -C14_BF4 -C14_BF5 -C14_BF6 -C14_NUC1 -C14_NUC2 -C14_NUC3 -C14_NUC4 -C14_NUC5 -C14_NUC6 - -CO2_GPP1 -CO2_GPP2 -CO2_GPP3 -CO2_GPP4 -CO2_GPP5 -CO2_GPP6 -CO2_RA1 -CO2_RA2 -CO2_RA3 -CO2_RA4 -CO2_RA5 -CO2_RA6 -C14_NPP1 -C14_NPP2 -C14_NPP3 -C14_NPP4 -C14_NPP5 -C14_NPP6 -C14_NPN1 -C14_NPN2 -C14_NPN3 -C14_NPN4 -C14_NPN5 -C14_NPN6 -C14_HR1 -C14_HR2 -C14_HR3 -C14_HR4 -C14_HR5 -C14_HR6 - -CO2_O_P -CO2_O_N -CO_O_P -CO_O_N -C14_O_P -C14_O_N diff --git a/cases/che-wp4/variables.csv b/cases/che-wp4/variables.csv deleted file mode 100644 index 65b2e21d..00000000 --- a/cases/che-wp4/variables.csv +++ /dev/null @@ -1,88 +0,0 @@ -# name, least_significant_digit, min_value, max_value -CO2_BG, 2, 0, 1 -CO_BG, 2, 0, 1 -C14_BG, 2, 0, 1 -CO2_FF1, 2, 0, 1 -CO2_FF2, 2, 0, 1 -CO2_FF3, 2, 0, 1 -CO2_FF4, 2, 0, 1 -CO2_FF5, 2, 0, 1 -CO2_FF6, 2, 0, 1 -CO2_BF1, 4, 0, 1 -CO2_BF2, 4, 0, 1 -CO2_BF3, 4, 0, 1 -CO2_BF4, 4, 0, 1 -CO2_BF5, 4, 0, 1 -CO2_BF6, 4, 0, 1 -CO2_NC1, 3, 0, 1 -CO2_NC2, 3, 0, 1 -CO2_NC3, 3, 0, 1 -CO2_NC4, 3, 0, 1 -CO2_NC5, 3, 0, 1 -CO2_NC6, 3, 0, 1 -CO_FF1, 2, 0, 1 -CO_FF2, 2, 0, 1 -CO_FF3, 2, 0, 1 -CO_FF4, 2, 0, 1 -CO_FF5, 2, 0, 1 -CO_FF6, 2, 0, 1 -CO_BF1, 2, 0, 1 -CO_BF2, 2, 0, 1 -CO_BF3, 2, 0, 1 -CO_BF4, 2, 0, 1 -CO_BF5, 2, 0, 1 -CO_BF6, 2, 0, 1 -CO_NC1, 2, 0, 1 -CO_NC2, 2, 0, 1 -CO_NC3, 2, 0, 1 -CO_NC4, 2, 0, 1 -CO_NC5, 2, 0, 1 -CO_NC6, 2, 0, 1 -C14_BF1, 4, 0, 1 -C14_BF2, 4, 0, 1 -C14_BF3, 4, 0, 1 -C14_BF4, 4, 0, 1 -C14_BF5, 4, 0, 1 -C14_BF6, 4, 0, 1 -C14_NUC1, 3, 0, 1 -C14_NUC2, 3, 0, 1 -C14_NUC3, 3, 0, 1 -C14_NUC4, 3, 0, 1 -C14_NUC5, 3, 0, 1 -C14_NUC6, 3, 0, 1 -CO2_GPP1, 3, 0, 1 -CO2_GPP2, 3, 0, 1 -CO2_GPP3, 3, 0, 1 -CO2_GPP4, 3, 0, 1 -CO2_GPP5, 3, 0, 1 -CO2_GPP6, 3, 0, 1 -CO2_RA1, 3, 0, 1 -CO2_RA2, 3, 0, 1 -CO2_RA3, 3, 0, 1 -CO2_RA4, 3, 0, 1 -CO2_RA5, 3, 0, 1 -CO2_RA6, 3, 0, 1 -C14_NPP1, 6, 0, 1 -C14_NPP2, 6, 0, 1 -C14_NPP3, 6, 0, 1 -C14_NPP4, 6, 0, 1 -C14_NPP5, 6, 0, 1 -C14_NPP6, 6, 0, 1 -C14_NPN1, 6, 0, 1 -C14_NPN2, 6, 0, 1 -C14_NPN3, 6, 0, 1 -C14_NPN4, 6, 0, 1 -C14_NPN5, 6, 0, 1 -C14_NPN6, 6, 0, 1 -C14_HR1, 4, 0, 1 -C14_HR2, 4, 0, 1 -C14_HR3, 4, 0, 1 -C14_HR4, 4, 0, 1 -C14_HR5, 4, 0, 1 -C14_HR6, 4, 0, 1 -CO2_O_P, 4, 0, 1 -CO2_O_N, 4, 0, 1 -CO_O_P, 4, 0, 1 -CO_O_N, 4, 0, 1 -C14_O_P, 6, 0, 1 -C14_O_N, 6, 0, 1 diff --git a/cases/cosmo-7/GLOBAL.dat b/cases/cosmo-7/GLOBAL.dat deleted file mode 100644 index b95a9749..00000000 --- a/cases/cosmo-7/GLOBAL.dat +++ /dev/null @@ -1,220 +0,0 @@ -############################################################################### -# -# File: GLOBAL -# Category: LM package - namelist file for task "integ" -# -# Host: SUN -# Location: $LM_NDIR/ (e.g.: = integ) -# Permission: 440 -# Associated files: $LM_SDIR/lm_for -# -# -# Description: The variables in part A) and B) of this file control the -# behaviour of the task "integ". In part C) it is possible to -# define its own variables, for later usage in other namelist -# files. -# Any lines beginning with # are ignored. 'Predefined variables' -# (as defined below) can be used. -# -# -# Predefined variables: -# $LM_YY year of the experiment -# $LM_MM month of the experiment -# $LM_DD day of the experiment -# $LM_ZZ time of the experiment -# $LM_YYm12 year of the experiment minus 12 hours -# $LM_MMm12 month of the experiment minus 12 hours -# $LM_DDm12 day of the experiment minus 12 hours -# $LM_ZZm12 time of the experiment minus 12 hours -# $LM_DATEm12 shortcut for $LM_YY$LM_MM$LM_DD$LM_ZZ minus 12 hours -# $LM_YYp12 year of the experiment plus 12 hours -# $LM_MMp12 month of the experiment plus 12 hours -# $LM_DDp12 day of the experiment plus 12 hours -# $LM_ZZp12 time of the experiment plus 12 hours -# $LM_DATEp12 shortcut for $LM_YY$LM_MM$LM_DD$LM_ZZ plus 12 hours -# -############################################################################### - - - - - -# A) General -#----------- -# Variables controlling the general behaviour of the task 'integ'. -# Variables are defined following the pattern: -# setenv -# E.g.: setenv LM_NL_TEXPN A01 -#===================================================================== - -# Experiments names -setenv LM_NL_TEXPN PRL # For task -setenv LM_NL_C_TTAG 'COSMO-7 intpl' # Legend for plots -setenv LM_NL_F_TTAG '' # Legend for plots - -# Forecast range -setenv LM_NL_HENDE_PREASSML 0 -setenv LM_NL_HENDE_F 0 -setenv LM_NL_HENDE_C 90 - -# Forecast range for customers -setenv LM_NL_HENDE_CL 24 - -# Timestep of input files (hours) -setenv LM_NL_INPUT_INCR_C 1 - -# Difference between forecast time of boundary conditions and -# forecast time of the current task. -setenv LM_NL_INPUT_MINSHIFT_C 0 - -# Reservation type (opr only) -setenv LM_NL_RESV_TYPE intpl - -# A summary of the task status is kept if the value of LM_NL_SLOG is Y ; -# this summary is saved in file LOGinteg in directory LM_LOGDIR. -setenv LM_NL_SLOG Y # Y or N -#===================================================================== - - - -# B) Development of the task -#--------------------------- -# Variables controlling the development of the task 'integ'. -# Variables are defined following the pattern: -# setenv -# E.g.: setenv LM_NL_ARC Y -#===================================================================== -# The next variables control the execution of different modules: -# a module can be performed [Y] or skipped [N]. -#--------------------------------------------------------------------- -setenv LM_NL_ARC N # archive transactions -setenv LM_NL_BUF Y # buffer transactions -setenv LM_NL_GETOBS N # lm_getobs -setenv LM_NL_IFS2LM Y # lm_ifs2lm -setenv LM_NL_GME2LM N # lm_gme2lm -setenv LM_NL_IFS2LM_PREASSML N # lm_ifs2lm -preassml -setenv LM_NL_LM_C_PREASSML N # lm_lm_c -preassml -setenv LM_NL_LM2LM_PREASSML N # lm_lm2lm -preassml -setenv LM_NL_LM_F_PREASSML N # lm_lm_f -preassml -setenv LM_NL_LM_C N # lm_lm_c -setenv LM_NL_LM2LM N # lm_lm2lm -setenv LM_NL_LM_F N # lm_lm_f -setenv LM_NL_LM_C_POSTFCST N # lm_lm_c -postfcst -setenv LM_NL_FIELDEXTRA_C N # lm_fieldextra -setenv LM_NL_FIELDEXTRA_F N # lm_fieldextra -setenv LM_NL_PRT N # lm_print -setenv LM_NL_DISS N # dissemination -setenv LM_NL_CLIENTS N # used for D-PHASE module (opr only) -setenv LM_NL_SKYGUIDE N # lm_skyguide,lm_ist (opr only) - -# The next variables are used to execute user specific actions at the -# beginning and at the end of the job or task. -# If the the variable is set to the full path of an executable file -# (living on LM_HOST) this file will be automatically executed by the -# All environment variables defined by the LM package are accessible -# to these files. -# ATTENTION: these executable are NOT under the control of the -# LM package run time environment! -#----------------- -setenv LM_NL_BTHOOK -setenv LM_NL_BJHOOK -setenv LM_NL_EJHOOK -setenv LM_NL_ETHOOK - -# The next variable controls housekeeping at the end of the task. -# If the value of LM_NL_ROF is N no data are removed; if this value -# is Y the following data are removed: -# -> on NQS_HOST: directory LM_WDIR/LM_TAG. -# -> on LM_HOST: subdirectories of LMWDIR/LM_TAG defined by -# LM_RESOURCE, LM_PLOT*, LM_LOOPS, LM_PSANETZ, LM_GRIB. -# and all the preproc/model output -# It is also possible to set the value of LM_NL_ROF to T [T; T=1,2,...]: -# in this case the data defined above are immediately removed if the task -# is successful, otherwise are removed after T hours. -#---------------- -setenv LM_NL_ROF 6 - -# Cut-off time for active jobs: after T hours [T=1,2,...] an active -# job is killed. If LM_NL_JOBMAXT has no value, no time limit is -# enforced. -#---------------- -setenv LM_NL_JOBMAXT 24 -#===================================================================== - - - - - -# C. User defined variables -#-------------------------- -# You can define your own variables below. -# Variables are defined following the pattern: -# setenv -# must be capitalized and must begin with the string -# "LM_NL_". must be unique among all variables used -# in namelist files. -#===================================================================== -# GME grid -#--------- -setenv LM_NL_RESGME 128 -setenv LM_NL_KEGME 31 - -# IFS grid -#--------- -setenv LM_NL_POLPHIIFS 43.0 -setenv LM_NL_POLLAMIFS -170.0 -setenv LM_NL_IEIFS 264 -setenv LM_NL_JEIFS 223 -setenv LM_NL_KEIFS 137 -setenv LM_NL_DLAMIFS 0.1 -setenv LM_NL_DPHIIFS 0.1 -setenv LM_NL_PHILUIFS -10.7 -setenv LM_NL_LAMLUIFS -18.3 - -# LM coarse grid -#--------------- -setenv LM_NL_POLLATLM_C 43.0 -setenv LM_NL_POLLONLM_C -170.0 -setenv LM_NL_EXT_IE_C 601 -setenv LM_NL_EXT_JE_C 601 -setenv LM_NL_IELM_C 393 -setenv LM_NL_JELM_C 338 -setenv LM_NL_KELM_C 60 -setenv LM_NL_DLONLM_C 0.06 -setenv LM_NL_DLATLM_C 0.06 -setenv LM_NL_STARTLAT_TOT_C -9.78 -setenv LM_NL_STARTLON_TOT_C -16.32 - -# For levels ke, ke-1, ke-2 -#-------------------------- -@ tmp_value = $LM_NL_KELM_C - 1 ; setenv LM_NL_KEM1_C $tmp_value -@ tmp_value = $LM_NL_KELM_C - 2 ; setenv LM_NL_KEM2_C $tmp_value - -# For level ke+1 -#--------------- -@ tmp_value = $LM_NL_KELM_C + 1 ; setenv LM_NL_KEP1_C $tmp_value - -# LM fine grid -#--------------- -setenv LM_NL_POLLATLM_F 43.0 -setenv LM_NL_POLLONLM_F -170.0 -setenv LM_NL_EXT_IE_F 701 -setenv LM_NL_EXT_JE_F 701 -setenv LM_NL_IELM_F 520 -setenv LM_NL_JELM_F 350 -setenv LM_NL_KELM_F 60 -setenv LM_NL_DLONLM_F 0.02 -setenv LM_NL_DLATLM_F 0.02 -setenv LM_NL_STARTLAT_TOT_F -4.0 -setenv LM_NL_STARTLON_TOT_F -5.7 - -# For levels ke, ke-1, ke-2 -#-------------------------- -@ tmp_value = $LM_NL_KELM_F - 1 ; setenv LM_NL_KEM1_F $tmp_value -@ tmp_value = $LM_NL_KELM_F - 2 ; setenv LM_NL_KEM2_F $tmp_value - -# For level ke+1 -#--------------- -@ tmp_value = $LM_NL_KELM_F + 1 ; setenv LM_NL_KEP1_F $tmp_value - -#===================================================================== diff --git a/cases/cosmo-7/config.py b/cases/cosmo-7/config.py deleted file mode 100644 index 0f922972..00000000 --- a/cases/cosmo-7/config.py +++ /dev/null @@ -1,119 +0,0 @@ -import os -import types -import sys - -year = sys.argv[2][0:4] - -user = os.environ['USER'] - -# Everything defined before is not written to os.environ -# and thus not available to bash scripts. -not_config = list(locals().keys()) - -print(sys.argv) - -target = 'cosmo' -restart_step = 24 -subtarget = 'spinup' -spinup = 0 - -compute_host = 'daint' -compute_queue = 'normal' #'debug' #'normal' - -compute_account = 'em05' #'sd02' #'sd02' -constraint = 'mc' - -if constraint == 'gpu': - ntasks_per_node = 12 - mpich_cuda = ('export MPICH_RDMA_ENABLED_CUDA=1\n' - 'export MPICH_G2G_PIPELINE=256\n' - 'export CRAY_CUDA_MPS=1\n') -elif constraint == 'mc': - ntasks_per_node = 36 - mpich_cuda = '' - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# meteo -#meteo_dir = '/store/mch/msopr/owm/IFS-HRES-BC/IFS-HRES-BC20' # before 2020-10-28 -#meteo_dir = '/store/empa/em05/COSMO7_BC/' # until 2020-11-11 12 -#meteo_dir = '/store/s83/osm/IFS-HRES-BC-EMPA/IFS-HRES-BC-EMPA20' # after 2020-11-11 12 -meteo_dir = '/store/s83/osm/IFS-HRES-BC-EMPA/IFS-HRES-BC-EMPA21' -meteo_dir_alt = '/store/mch/msopr/owm/IFS-HRES-BC/IFS-HRES-BC20' -meteo_prefix = "efsf" -meteo_inc = 1 - -# output -output_root = '/store/empa/em05/cosmo-7/output' - -# working root -work_root = os.environ['SCRATCH'] + "/processing_chain" -log_dir = os.path.join(work_root, 'logs') - -# chain root -chain_src_dir = os.getcwd() -tools_dir = os.path.join(chain_src_dir, 'jobs/tools') - -# INT2LM -int2lm_extpar_dir = '/store/empa/em05/cosmo-7/extpar' -int2lm_extpar_file = 'lmExtPara_601x601_0.06_20090226' -int2lm_bin = '/store/empa/em05/executables/int2lm_gnu_208d68e_20201005' - -# COSMO -cosmo_bin = '/store/empa/em05/executables/cosmo-pompa_cosmo7_container_gnu_4d8c5473_20210207' - -# FIELDEXTRA -laf_startfile = '/store/mch/msopr/owm/COSMO-7/ANA20/laf2020102212' -fieldextra_bin = '/store/empa/em05/executables/fieldextra_gnu_opt_omp_2dced5a5_20210107' -fieldextra_control_file = '%s/cases/%s/merge.ctl' % (chain_src_dir, casename) -do_merge_at_start = True - -# Case specific settings (int2lm and cosmo namelists and runscripts) -int2lm_namelist = '%s/cases/%s/int2lm_INPUT.cfg' % (chain_src_dir, casename) -int2lm_runjob = '%s/cases/%s/int2lm_runjob.cfg' % (chain_src_dir, casename) -cosmo_namelist = '%s/cases/%s/cosmo_INPUT_' % (chain_src_dir, casename) -cosmo_runjob = '%s/cases/%s/cosmo_runjob.cfg' % (chain_src_dir, casename) - -# Observation Nudging -obs_nudging_dir = '/store/empa/em05/obs_nudging_cosmo' -obs_nudging_prefixes = [ - 'cdfin_amdar', 'cdfin_buoy', 'cdfin_ship', 'cdfin_synop', 'cdfin_temp', - 'cdfin_wprof' -] -#obs_nudging_date_format = "-%Y%m%d%H%M%S" -obs_nudging_date_format = "-%Y%m%d000000" - -# Walltimes and domain decomposition - -## INT2LM -if compute_queue == "normal": - int2lm_walltime = "00:30:00" -elif compute_queue == "debug": - int2lm_walltime = "00:30:00" -else: - logging.error("Unset queue name: %s" % compute_queue) - sys.exit(1) - -int2lm_nodes = 2 -int2lm_np_x = 6 -int2lm_np_y = 4 -int2lm_np_tot = int2lm_np_x * int2lm_np_y - -## COSMO -if compute_queue == "normal": - cosmo_walltime = "16:00:00" - cosmo_np_x = 9 - cosmo_np_y = 8 -elif compute_queue == "debug": - cosmo_walltime = "00:30:00" - cosmo_np_x = 2 - cosmo_np_y = 2 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) - -# Total node count -cosmo_np_io = 0 -cosmo_np_tot = int(cosmo_np_x * cosmo_np_y / ntasks_per_node) + cosmo_np_io diff --git a/cases/cosmo-7/cosmo_INPUT_ASS.cfg b/cases/cosmo-7/cosmo_INPUT_ASS.cfg deleted file mode 100644 index b24c00ba..00000000 --- a/cases/cosmo-7/cosmo_INPUT_ASS.cfg +++ /dev/null @@ -1,46 +0,0 @@ - &NUDGING - lnudge=.true., lverif=.true., mruntyp=2, lverpas=.true., - itype_obfile = 2, ycdfdir= '{cfg.cosmo_input}/obs_nudging', - hnudgsta= {cfg.hstart}, hnudgend = {cfg.hstop}, tconbox = 240.0, - hversta = 0.001, hverend = {cfg.hstop}, khumbal = 100, - ntpscor = 1, ptpstop=400.0, luvgcor=.TRUE., - ltipol =.TRUE., tipolmx = 3.0, wtukrsa = 3.0, wtukrse = 1.0, - ltipsu =.TRUE., tipmxsu = 1.0, wtuksua = 1.5, wtuksue = 0.5, - wtukara = 1.5, wtukare = 0.5, - msprpar = 1, msprpsu = 0, - gnudg = .0006, .0006, .0006, .0006, - gnudgsu = .0006, .0006, .0000, .0006, - gnudgar = .0006, .0000, .0006, .0000, - vcorls = .333 , .333 , .04 , .04 , vcutof = 0.75, 0.75, 1.0 , 1.0 , - vcorlsu = .013 , .013 , .002 , .00001, vcutosu = 0.75, 0.75, 4.0 , 0.001 , - vcsnisu = 2500., 2500., 9. , 9. , - rhvfac = 1.0 , 0.0 , 0.83, 0.83, - rhinfl = 0., 70., 0., 0., rhtfac = 1.3 , 1.43 , 1.3 , 1.3 , - rhiflsu = 70., 70., 100., 70., rhtfsu = 1.0 , 1.43 , 1.0 , 1.0 , - fnondiv = 0.8 , cnondiv = 0.1 , cutofr = 3.5 , 3.5 , 3.5 , 3.5 , - tnondiv = 1.1 , cutofsu = 2.0 , 3.5 , 2.0 , 2.0 , - topobs = 849., 1099., 799., 699., - botmod = 1099., 1099., 1099., 899., - lscadj =.TRUE.,.TRUE.,.TRUE.,.FALSE., - dtqc = 720., qcvf = 5.0 , 1.0 ,10.0 , 0.0 , - qcc = 0., 500., 0., .7, - qccsu = 12., 500., 12., .7, - lsynop =.true., - laircf =.true., - ldribu =.true., - ltemp =.true., - lpilot =.true., - lcd137 =.false., - lcd132 =.true., - maxmlo = 600, maxsgo = 10000, maxuso = 5000, nolbc = 5, - altopsu = 100., 5000., 5000., 5000., thairh = 20., - exnlat = 90., exslat =-90., exwlon = -180., exelon = 180., - lsurfa =.false., - lt2m =.true., ht2a = 0., ht2i = 1., - lrh2m =.true., hh2a = 0., hh2i = 1., - lprecp =.true., hprc = 0., raintp = 12., - lpraof =.false., lprodr =.true. , ldiasa =.false., noctrq = 9, - dinlat = 50., dislat = 44., diwlon = 4., dielon = 12., - ionl = 235, jonl = 151, ionl2 = 221, jonl2 = 131, - mqcorr92=2 - /END diff --git a/cases/cosmo-7/cosmo_INPUT_DIA.cfg b/cases/cosmo-7/cosmo_INPUT_DIA.cfg deleted file mode 100644 index 7a675ef1..00000000 --- a/cases/cosmo-7/cosmo_INPUT_DIA.cfg +++ /dev/null @@ -1,7 +0,0 @@ - &DIACTL - n0meanval=0, nincmeanval=1, - itype_diag_t2m=1, - itype_diag_gusts=2, - lgplong =.TRUE., n0gp=0, hincgp=1., - stationlist_tot= 0, 0, 46.817, 6.935, 'Payerne' - /END diff --git a/cases/cosmo-7/cosmo_INPUT_DYN.cfg b/cases/cosmo-7/cosmo_INPUT_DYN.cfg deleted file mode 100644 index 34117564..00000000 --- a/cases/cosmo-7/cosmo_INPUT_DYN.cfg +++ /dev/null @@ -1,38 +0,0 @@ - &DYNCTL - ldivdamp_old=.false. - lcpp_dycore=.false. - lspubc=.true., - rdheight=11000.0, - nrdtau=10, - lexpl_lbc=.true., - rlwidth=85000.0, - ldyn_bbc=.false., - itype_bbc_w=114, - xkd=0.1, - lcond=.true., - l_diff_smag=.true., - lhordiff=.true., - itype_hdiff=2, - hd_corr_u_bd=0.75, - hd_corr_t_bd=0.75, - hd_corr_trcr_bd=0.0, - hd_corr_p_bd=0.75, - hd_corr_u_in=0.25, - hd_corr_t_in=0.0, - hd_corr_trcr_in=0.0, - hd_corr_p_in=0.0, - hd_dhmax=250., - l2tls=.true., - irunge_kutta=1, - irk_order=3, - iadv_order=5, - itheta_adv=0, - ltadv_limiter=.false., - y_scalar_advect='Bott2_Strang', - y_vert_adv_dyn='impl2', - ldiabf_lh=.true., - itype_outflow_qrsg=2, - itype_lbc_qrsg=1, - itype_fast_waves=2, - divdamp_slope=1.0 - /END diff --git a/cases/cosmo-7/cosmo_INPUT_INI.cfg b/cases/cosmo-7/cosmo_INPUT_INI.cfg deleted file mode 100644 index dbb5eb40..00000000 --- a/cases/cosmo-7/cosmo_INPUT_INI.cfg +++ /dev/null @@ -1,5 +0,0 @@ - &INICTL - ndfi=2, - tspan= 1840.0, taus= 1840.0, - dtbak=40.0, dtfwd=40.0, - /END diff --git a/cases/cosmo-7/cosmo_INPUT_IO.cfg b/cases/cosmo-7/cosmo_INPUT_IO.cfg deleted file mode 100644 index c736a385..00000000 --- a/cases/cosmo-7/cosmo_INPUT_IO.cfg +++ /dev/null @@ -1,77 +0,0 @@ - &IOCTL - ldwd_grib_use=.FALSE., - l_ke_in_gds=.TRUE., - lasync_io=.FALSE., - itype_gather=2, - ymode_read='r ', - ymode_write='w ', - nincwait=90, - nmaxwait=300, - nvers=955, - ncenter=215, - llockfiles=.true. - nhour_restart = {restart_start:.0f} ,{restart_stop:.0f}, {restart_step:.0f}, ! start, stop and increment in full forecast hours - - ydir_restart_in = '{cfg.cosmo_restart_in}', - ydir_restart_out = '{cfg.cosmo_restart_out}', - ytunit_restart = 'f', - /END - &GRIBIN - lbdana=.FALSE., - ydirini='../../cosmo/input/initial/', - lchkini=.TRUE., - hincbound=1.0, - ydirbd='../../int2lm/output/', - lchkbd =.TRUE., - lana_qi = .TRUE., - llb_qi = .TRUE., - lana_qg = .FALSE., - llb_qg = .FALSE., - lana_qr_qs = .TRUE., - llb_qr_qs = .TRUE., - lana_rho_snow = .TRUE., - lan_w_so = .TRUE., - lan_lai = .TRUE., lan_rootdp = .TRUE., lan_vio3 = .TRUE., lan_plcov = .TRUE., - lan_t_cl = .TRUE., lan_w_cl = .TRUE., lan_hmo3 = .TRUE., lan_t_so0 = .TRUE., - lan_t_snow = .TRUE., lan_w_snow = .TRUE., lan_w_i = .TRUE., lan_rho_snow = .TRUE., - newbc=0, - hnewbcdt=3.0, - /END - &GRIBOUT - lanalysis=.TRUE., - hcomb = 0, {cfg.hstop}, 1 - yvarml='HSURF ','FR_LAND ','SOILTYP ','PLCOV ','LAI ','ROOTDP ', - 'VIO3 ','HMO3 ','PP ','FOR_D ','FOR_E ', - 'U ','V ','W ','T ','QV ','QC ', - 'P ','PS ','T_SNOW ','FRESHSNW','W_SNOW ', - 'W_SO ','T_SO ','QV_S ','W_I ','RAIN_GSP','SNOW_GSP', - 'RAIN_CON','SNOW_CON','U_10M ','V_10M ','T_2M ','TD_2M ', - 'TMIN_2M ','TMAX_2M ','VMAX_10M','TCM ','TCH ','T_G ', - 'CLCT ','CLCH ','CLCM ','CLCL ','ALB_RAD ','ASOB_S ', - 'ATHB_S ','ASOB_T ','ATHB_T ','APAB_S ','TOT_PREC','Z0 ', - 'AUMFL_S ','AVMFL_S ','ASHFL_S ','ALHFL_S ','BAS_CON ','TOP_CON ', - 'HTOP_DC ','RUNOFF_S','RUNOFF_G','PMSL ','HBAS_CON','HTOP_CON', - 'QI ','QR ','QS ','TWATER ','TDIV_HUM', - 'CLCT_MOD','CLC ','HZEROCL ','DPSDT ','SNOWLMT ','DBZ_CMAX', - 'DBZ_850 ','RHO_SNOW','DURSUN ','DURSUN_M', - 'QCVG_CON','MFLX_CON','CAPE_CON','ZTD ','ZHD ','ZWD ', - 'TQC ','TQI ','TQV ','TKE ','HPBL ','EDR ', - 'SKYVIEW ','SLO_ANG ','SLO_ASP ','HORIZON ','VGUST_DYN_10M','VGUST_CON_10M', - 'CEILING ','ASWDIR_S ','ASWDIFD_S ','ASWDIFU_S ','ATHD_S ', - 'SSO_STDH ','SSO_GAMMA','SSO_THETA ','SSO_SIGMA', - 'AUSTR_SSO','AVSTR_SSO','AVDIS_SSO', - 'AMBR','AMBRfe','AMBRfr','AMBRhcem','AMBRresn','AMBRreso','AMBRress', - 'AMBRrprec','AMBRsdes' - zlev=750.,1000.,2000.,3000.,4000.,5000.,8500.,10500., - plev=100.,150.,200.,250.,300.,350.,400.,450.,500.,550.,600.,650., - 700.,750.,800.,850.,900.,925.,950.,1000., - yvarpl= 'T ', 'RELHUM ', 'U ', 'V ', - 'FI ', 'OMEGA ', 'QC ', 'QV ' - yvarzl= 'T ', 'RELHUM ', 'U ', 'V ', - 'P ', 'W ', 'QC ', - yvarsl= '', - lcheck = .TRUE., - ydir='../output/', - l_z_filter=.FALSE., l_p_filter=.FALSE., luvmasspoint=.false., - l_fi_pmsl_smooth=.FALSE., l_pmsl_filter=.FALSE., l_fi_filter=.FALSE., - /END diff --git a/cases/cosmo-7/cosmo_INPUT_ORG.cfg b/cases/cosmo-7/cosmo_INPUT_ORG.cfg deleted file mode 100644 index 03bee1f3..00000000 --- a/cases/cosmo-7/cosmo_INPUT_ORG.cfg +++ /dev/null @@ -1,52 +0,0 @@ - &LMGRID - startlat_tot= -9.78, - startlon_tot= -16.32, - pollat=43.0, - pollon=-170.0, - dlon=0.06, - dlat=0.06, - ie_tot= 393, - je_tot= 338, -ke_tot=60, - /END - &RUNCTL - dt= 60.0, - hstart = {cfg.hstart}, - hstop = {cfg.hstop}, - ydate_ini = '{cfg.inidate_yyyymmddhh}', - hincmxt=1.0, - itype_timing=4, - lreproduce=.TRUE., - luseobs =.TRUE., - lphys =.TRUE., - ldiagnos=.FALSE., - luse_rttov=.FALSE., - ldfi=.FALSE., - nprocx = {cfg.cosmo_np_x}, - nprocy = {cfg.cosmo_np_y}, - nprocio=0, - nboundlines=3, - ldump_ascii = .FALSE., - l_pollen = .FALSE. - /END - &TUNING - tkhmin=0.4, - tkmmin=0.4, - rlam_mom=0.0, - rlam_heat=1.0, - rat_sea=20.0, - rat_lam=1.0, - rat_can=1.0, - wichfakt=0.0, - c_lnd=2.0, - c_sea=1.5, - c_soil=1.0, - pat_len=500.0, - z0m_dia=0.2, - crsmin=150.0, - clc_diag=0.5, - qc0=0.0 - mu_rain=0.0, - rain_n0_factor=1.0, - v0snow=25.0, - /END diff --git a/cases/cosmo-7/cosmo_INPUT_PHY.cfg b/cases/cosmo-7/cosmo_INPUT_PHY.cfg deleted file mode 100644 index f135cdb4..00000000 --- a/cases/cosmo-7/cosmo_INPUT_PHY.cfg +++ /dev/null @@ -1,41 +0,0 @@ - &PHYCTL - lseaice=.false., - llake=.false., - lgsp=.true., - itype_gscp=3, - ldiniprec=.FALSE., - lrad=.true., - hincrad = 1.0, - lradtopo=.TRUE., - lforest=.TRUE., - ltur=.true., - ninctura=1, - lexpcor=.false., - ltmpcor=.false., - lprfcor=.false., - lnonloc=.false., - lcpfluc=.false., - itype_turb=3, - imode_turb=1, - itype_tran=2, - imode_tran=1, - limpltkediff=.true., - itype_wcld=2, - icldm_rad=4, - icldm_turb=2, - icldm_tran=0, - itype_synd=2, - lsoil=.TRUE., - lmelt=.TRUE., - lmelt_var=.TRUE., - lmulti_layer=.TRUE., - itype_evsl=2, - itype_trvg=2, - lconv=.true., - itype_conv=0, - nincconv=5, - lcape=.false., - lconf_avg=.true., - lsso=.TRUE., - ltkesso=.TRUE., - /END diff --git a/cases/cosmo-7/cosmo_INPUT_SAT.cfg b/cases/cosmo-7/cosmo_INPUT_SAT.cfg deleted file mode 100644 index cb92f673..00000000 --- a/cases/cosmo-7/cosmo_INPUT_SAT.cfg +++ /dev/null @@ -1,6 +0,0 @@ - &SATCTL - num_sensors=1, - sat_input_01='MSG' ,1,'SEVIRI',8, .TRUE., .TRUE.,.TRUE., .TRUE., - nchan_input_01=1,2,3,4,5,6,7,8 - lcon_clw=.TRUE., - /END diff --git a/cases/cosmo-7/cosmo_runjob.cfg b/cases/cosmo-7/cosmo_runjob.cfg deleted file mode 100644 index 9bff7541..00000000 --- a/cases/cosmo-7/cosmo_runjob.cfg +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name="cosmo_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --time={cfg.cosmo_walltime} -#SBATCH --nodes={cfg.cosmo_np_tot} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --hint=nomultithread -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.cosmo_work} - -export MALLOC_MMAP_MAX_=0 -export MALLOC_TRIM_THRESHOLD_=536870912 -export OMP_NUM_THREADS=1 - -{cfg.mpich_cuda} - -# Set this to avoid segmentation faults -ulimit -s unlimited -ulimit -a - -# clean up -rm -f YU* -rm -f M_* -rm -f core.* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u ./cosmo >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo "Executing COSMO failed" >> {logfile}; exit 1; }} - -# check whether COSMO was successful by calculating name of the last -# output file that should have been created -parentdir={cfg.chain_root} -timestr="$(basename ${{parentdir}})" -IFS='_' read -r -a array <<< "${{timestr}}" -yyyymmddhh="${{array[0]}}" -yyyymmdd=$(echo $yyyymmddhh | cut -c1-8) -hh=$(echo $yyyymmddhh | cut -c9-10) -hoursSim="${{array[2]}}" -startdate=$(date -d "${{yyyymmdd}} ${{hh}}") -lastHour=$(date -d "$startdate +${{hoursSim}} hours" +"%Y%m%d%H") -lastHourFile={cfg.cosmo_output}/laf${{lastHour}} - -if [[ ! -f ${{lastHourFile}} ]] -then - echo "COSMO failed" >> {logfile} - exit 1 -fi - -# copy log file -echo "Copying logfile" -cp {logfile} {logfile_finish} diff --git a/cases/cosmo-7/ifs2lm.dat b/cases/cosmo-7/ifs2lm.dat deleted file mode 100644 index b6d0ba48..00000000 --- a/cases/cosmo-7/ifs2lm.dat +++ /dev/null @@ -1,144 +0,0 @@ -############################################################################### -# -# File: ifs2lm -# Category: LM package - namelist file for task "integ" -# -# Host: SUN -# Location: $LM_NDIR/ (e.g.: = integ) -# Permission: 440 -# Associated files: $LM_SDIR/lm_ifs2lm -# -# -# Description: environment and NAMELIST for the program int2lm witch -# ec2lm = .TRUE. -# This file is read by the script lm_ifs2lm which -# interpolates IFS analysis and forecast fields. -# Any lines beginning with # are ignored. 'Predefined variables' -# (as defined below) can be used. -# -# -# Predefined variables: -# 1) $LM_YY year of the experiment (last 2 digits) -# $LM_YYYY year of the experiment (4 digits) -# $LM_MM month of the experiment -# $LM_DD day of the experiment -# $LM_ZZ time of the experiment -# $LM_DATE shortcut for $LM_YY$LM_MM$LM_DD$LM_ZZ -# $LM_YYm12 year of the experiment minus 12 hours -# $LM_MMm12 month of the experiment minus 12 hours -# $LM_DDm12 day of the experiment minus 12 hours -# $LM_ZZm12 time of the experiment minus 12 hours -# $LM_DATEm12 shortcut for $LM_YY$LM_MM$LM_DD$LM_ZZ minus 12 hours -# $LM_YYp12 year of the experiment plus 12 hours -# $LM_MMp12 month of the experiment plus 12 hours -# $LM_DDp12 day of the experiment plus 12 hours -# $LM_ZZp12 time of the experiment plus 12 hours -# $LM_DATEp12 shortcut for $LM_YY$LM_MM$LM_DD$LM_ZZ plus 12 hours -# $LM_TAG shortcut for ${LM_DATE}_${LM_NL_TEXPN} -# $LM_WDIR input and ouput files are collected in $LM_WDIR/$LM_TAG -# $LM_LDIR boden data are in this directory -# 2) All variables defined in file 'GLOBAL' in the same directory: -# $LM_NL_YEMEXPN -# $LM_NL_HENDE -# .... -# -############################################################################### - -cat >! $workingDir/INPUT << EONL - &CONTRL - lmixcld=.true., - yinput_model = 'IFS' - hstart=0.0, - hstop=$LM_NL_HENDE_C.0, - hincbound=${LM_NL_INPUT_INCR_C}.0, - linitial=.TRUE., - lboundaries=.TRUE., - ltime_mean=.TRUE., - ltime_proc=.TRUE., - luvcor=.TRUE., - idbg_level=5, - luse_t_skin=.TRUE., - nprocx=$NQS_NXIFS2LM, nprocy=$NQS_NYIFS2LM, nprocio=$NQS_NIOIFS2LM, - lfilter_pp=.true., - llbc_smooth=.true., - lfilter_oro=.true., - ilow_pass_oro=4, - numfilt_oro=1, - ilow_pass_xso=5, - lxso_first=.FALSE., - numfilt_xso=1, - rxso_mask=750.0, - eps_filter=0.1, - norder_filter=5, - l_topo_z=.false., - rfill_valley=0.0, - ifill_valley=7, - lasync_io=.TRUE., - lprog_qi=.TRUE., - lprog_qr_qs=.TRUE., - nincwait=30, - nmaxwait=300, - lmulti_layer_lm=.TRUE., - itype_w_so_rel=1, - lpost_0006=.TRUE., - lforest=.TRUE. - ydate_ini='${LM_YYYY}${LM_MM}${LM_DD}${LM_ZZ}', - / - &GRID_IN - pcontrol_fi = 30000., - ie_in_tot = $LM_NL_IEIFS, je_in_tot = $LM_NL_JEIFS, ke_in_tot = $LM_NL_KEIFS, - startlat_in_tot = $LM_NL_PHILUIFS, startlon_in_tot = $LM_NL_LAMLUIFS, - pollat_in = $LM_NL_POLPHIIFS, pollon_in = $LM_NL_POLLAMIFS, - dlat_in = $LM_NL_DPHIIFS, dlon_in = $LM_NL_DLAMIFS, - / - &LMGRID - ielm_tot=$LM_NL_IELM_C, jelm_tot=$LM_NL_JELM_C, kelm_tot=$LM_NL_KELM_C, - ivctype=2, vcflat = 11357.0, irefatm=1, - vcoord_d=22000.00, 20905.22, 19848.88, 18830.22, 17848.51, - 16903.01, 15992.98, 15117.70, 14276.42, 13468.41, - 12692.96, 11949.32, 11236.77, 10554.60, 9902.08, - 9278.48, 8683.10, 8115.21, 7574.10, 7059.07, - 6569.40, 6104.39, 5663.33, 5245.53, 4850.27, - 4476.87, 4124.63, 3792.85, 3480.86, 3187.96, - 2913.47, 2656.71, 2417.00, 2193.66, 1986.04, - 1793.45, 1615.23, 1450.72, 1299.27, 1160.22, - 1032.92, 916.73, 811.00, 715.10, 628.39, - 550.25, 480.05, 417.19, 361.04, 311.01, - 266.50, 226.91, 191.67, 160.20, 131.95, - 106.35, 82.86, 60.98, 40.18, 20.00, - 0.00, - pollat =$LM_NL_POLLATLM_C , pollon =$LM_NL_POLLONLM_C , - dlon=$LM_NL_DLONLM_C , dlat=$LM_NL_DLATLM_C, - startlat_tot = $LM_NL_STARTLAT_TOT_C, - startlon_tot = $LM_NL_STARTLON_TOT_C, - lanalyt_calc_t0p0=.TRUE. - / - &DATABASE - / - &DATA - yinput_type = 'forecast', - l_ke_in_gds = .TRUE., - ie_ext = $LM_NL_EXT_IE_C, - je_ext = $LM_NL_EXT_JE_C, - ylmext_lfn = 'lmExtPara_601x601_0.06_20090226', - ylmext_cat = '$LM_LDIR/', - ylmext_form_read = 'grb1', - yinext_lfn = 'eas${LM_INI}', - yinext_cat = '$NQS_WDIR/$LM_TAG/$LM_INT2LM_IN/', - yinext_form_read = 'apix', - yin_cat = '$NQS_WDIR/$LM_TAG/$LM_INT2LM_IN/', - yin_form_read = 'apix', - ylm_cat = '$NQS_WDIR/$LM_TAG/$LM_INT2LM_OUT/', - ylm_form_write = 'grb1', - ncenter = 215, - nprocess_ini = 131, - nprocess_bd = 132, - ymode_write = 'w ', - / - &PRICTR - igp_tot = 36, 40, 48, 44, 48, 85, 77, - jgp_tot = 30, 94, 38, 26, 26, 96, 12, - lchkin=.TRUE., lchkout=.TRUE.,lprgp=.FALSE., - / - -EONL diff --git a/cases/cosmo-7/int2lm_INPUT.cfg b/cases/cosmo-7/int2lm_INPUT.cfg deleted file mode 100644 index 4754f6ac..00000000 --- a/cases/cosmo-7/int2lm_INPUT.cfg +++ /dev/null @@ -1,114 +0,0 @@ -&CONTRL - ydate_ini = '{cfg.inidate_int2lm_yyyymmddhh}', ! start of the forecast - hstart = {cfg.hstart_int2lm}, ! first hour to be processed - hstop = {cfg.hstop_int2lm}, ! last hour to be processed - nprocx = {cfg.int2lm_np_x}, ! number of processors in east-west direction - nprocy = {cfg.int2lm_np_y}, ! number of processors in north-south direction - lmixcld=.true., - yinput_model = 'IFS' - hincbound=1.0, - linitial=.TRUE., - lboundaries=.TRUE., - ltime_mean=.TRUE., - ltime_proc=.TRUE., - luvcor=.TRUE., - idbg_level=5, - luse_t_skin=.TRUE., - lfilter_pp=.true., - llbc_smooth=.true., - lfilter_oro=.true., - ilow_pass_oro=4, - numfilt_oro=1, - ilow_pass_xso=5, - lxso_first=.FALSE., - numfilt_xso=1, - rxso_mask=750.0, - eps_filter=0.1, - norder_filter=5, - l_topo_z=.false., - rfill_valley=0.0, - ifill_valley=7, - lasync_io=.TRUE., - lprog_qi=.TRUE., - lprog_qr_qs=.TRUE., - nincwait=30, - nmaxwait=300, - lmulti_layer_lm=.TRUE., - itype_w_so_rel=1, - lpost_0006=.TRUE., - lforest=.TRUE. -/ - -&GRID_IN - pcontrol_fi = 30000., - ie_in_tot = 264, - je_in_tot = 223, - ke_in_tot = 137, - startlat_in_tot = -10.7, - startlon_in_tot = -18.3, - pollat_in = 43, - pollon_in = -170, - dlat_in = 0.1, - dlon_in = 0.1, -/ - -&LMGRID - ielm_tot = 393, - jelm_tot = 338 - kelm_tot = 60, - ivctype = 2, - vcflat = 11357.0, - irefatm = 1, - vcoord_d = 22000.00, 20905.22, 19848.88, 18830.22, 17848.51, - 16903.01, 15992.98, 15117.70, 14276.42, 13468.41, - 12692.96, 11949.32, 11236.77, 10554.60, 9902.08, - 9278.48, 8683.10, 8115.21, 7574.10, 7059.07, - 6569.40, 6104.39, 5663.33, 5245.53, 4850.27, - 4476.87, 4124.63, 3792.85, 3480.86, 3187.96, - 2913.47, 2656.71, 2417.00, 2193.66, 1986.04, - 1793.45, 1615.23, 1450.72, 1299.27, 1160.22, - 1032.92, 916.73, 811.00, 715.10, 628.39, - 550.25, 480.05, 417.19, 361.04, 311.01, - 266.50, 226.91, 191.67, 160.20, 131.95, - 106.35, 82.86, 60.98, 40.18, 20.00, - 0.00, - pollat = 43.0, - pollon = -170.0, - dlat = 0.06, - dlon = 0.06, - startlat_tot = -9.78 - startlon_tot = -16.32 - lanalyt_calc_t0p0=.TRUE. -/ - -&DATABASE -/ - -&DATA - yinput_type = 'forecast', - l_ke_in_gds = .TRUE., - ie_ext = 601, - je_ext = 601, - ylmext_lfn = '{cfg.int2lm_extpar_file}', - ylmext_cat = '../input/extpar/', - ylmext_form_read = 'grb1', - yinext_lfn = 'efsf00000000', - yinext_cat = '../input/meteo/', - yinext_form_read = 'apix', - yin_cat = '../input/meteo/', - yin_form_read = 'apix', - ylm_cat = '../output/', - ylm_form_write = 'grb1', - ncenter = 215, - nprocess_ini = 131, - nprocess_bd = 132, - ymode_write = 'w ', -/ - -&PRICTR - igp_tot = 36, 40, 48, 44, 48, 85, 77, - jgp_tot = 30, 94, 38, 26, 26, 96, 12, - lchkin = .TRUE., - lchkout = .TRUE., - lprgp = .FALSE., -/ diff --git a/cases/cosmo-7/int2lm_runjob.cfg b/cases/cosmo-7/int2lm_runjob.cfg deleted file mode 100644 index d496ef70..00000000 --- a/cases/cosmo-7/int2lm_runjob.cfg +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name=int2lm_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime} -#SBATCH --account={cfg.compute_account} -#SBATCH --time={cfg.int2lm_walltime} -#SBATCH --nodes={cfg.int2lm_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --hint=nomultithread -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.int2lm_work} - -# Export env variables -export OMP_NUM_THREADS=1 -export CRAY_CUDA_MPS=1 - -export MALLOC_MMAP_MAX_=0 -export MALLOC_TRIM_THRESHOLD_=536870912 - -# Set this to avoid segmentation faults -ulimit -s unlimited -ulimit -a - -# Load modules for post-processing -module load daint-{cfg.constraint} -module load NCO -module list - -unset G2G -export MV2_USE_CUDA=0 -export MV2_USE_GPUDIRECT=0 - -rm -f YU* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u -n {cfg.int2lm_np_tot} ./int2lm >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo \"Executing INT2LM MPI command failed\" >> job.out; exit 1; }} - -# check whether INT2LM was successful by checking for presence of last -# meteofile that should have been processed -firstsecs=$(date -u --date "{ini_day} {ini_hour}" +%s) - -let lastsecs="firstsecs+{cfg.hstop_int2lm}*3600" -lastyyyymmddhh=$(date -u --date "1970-01-01 UTC +${{lastsecs}} sec" +%Y%m%d%H) -#lastHourFile="lbfd${{lastyyyymmddhh}}.nc" -lastHourFile=lbff01000000 - - -echo last file processed is $lastHourFile >> {logfile} - -[[ ! -f ../output/${{lastHourFile}} ]] && {{ echo "INT2LM failed" >> {logfile}; exit 1; }} - -cp {logfile} {logfile_finish} diff --git a/cases/cosmo-7/merge.ctl b/cases/cosmo-7/merge.ctl deleted file mode 100644 index 12e4bf0b..00000000 --- a/cases/cosmo-7/merge.ctl +++ /dev/null @@ -1,64 +0,0 @@ -&RunSpecification -strict_nl_parsing = .true. -verbosity = "moderate" -diagnostic_length = 110 -soft_memory_limit = 20.0 -strict_usage = .true. -/ - -&GlobalResource -dictionary = "/store/empa/em05/fieldextra/resources/dictionary_cosmo.txt" -grib_definition_path = "/store/empa/em05/fieldextra/resources/eccodes_definitions_cosmo", - "/store/empa/em05/fieldextra/resources/eccodes_definitions_vendor" -/ - -&GlobalSettings -default_model_name = "cosmo" -/ - -&ModelSpecification -earth_axis_large = 6371229. -earth_axis_small = 6371229. -model_name = "cosmo" -/ - -&Process - in_file = "{in_file}" - out_type = "INCORE" / -&Process in_field = "HSURF", tag="HSURF" / -&Process in_field = "FR_LAND", tag="fr_land" / -&Process in_field = "T_SO", levlist=0, tag="sst" / - - -# Here we define the fields that are merged from the interpolated IFS file -# this are external parameters and the SST -&Process - in_file = "{ifs_in_file}" - out_file = "{out_file}" - out_type = "GRIB1", in_regrid_target = "HSURF", in_size_field=1200 / -&Process in_field = "VIO3", levlist = -1, set_reference_date = {laf_output_refdate} / -&Process in_field = "HMO3", set_reference_date = {laf_output_refdate} / -&Process in_field = "PLCOV", set_reference_date = {laf_output_refdate} / -&Process in_field = "LAI", set_reference_date = {laf_output_refdate} / -&Process in_field = "ROOTDP", set_reference_date = {laf_output_refdate} / -&Process in_field = "FOR_D", set_reference_date = {laf_output_refdate} / -&Process in_field = "FOR_E", set_reference_date = {laf_output_refdate} / -# select IFS but use COSMO (sst) over land where fr_land > 0.5 or fr_lake > 0.5 -&Process in_field = "T_SO", levlist=0, merge_with="sst", merge_mask="fr_land>0.5", - set_auxiliary_metainfo="generatingProcessIdentifier=5", set_reference_date = {laf_output_refdate} / - -# Here we define the fields that are not taken from the COSMO file of the last cycle -&Process - in_file = "{in_file}" - out_file = "{out_file}" - out_type = "GRIB1", in_regrid_target = "HSURF", in_size_field=1200 - selection_mode = "EXCLUDE"/ -&Process in_field = "VIO3" / -&Process in_field = "HMO3" / -&Process in_field = "PLCOV" / -&Process in_field = "LAI" / -&Process in_field = "ROOTDP"/ -&Process in_field = "T_SO" , levlist = 0/ -&Process in_field = "FOR_D" / -&Process in_field = "FOR_E" / - diff --git a/cases/cosmo-art-mother-test/config.py b/cases/cosmo-art-mother-test/config.py deleted file mode 100644 index 0ca9c27f..00000000 --- a/cases/cosmo-art-mother-test/config.py +++ /dev/null @@ -1,152 +0,0 @@ -import os -""" -Configuration file for the 'cosmo-art-mother-test' case with COSMO-ART -""" - -# GENERAL SETTINGS =========================================================== -user = os.environ['USER'] -if os.path.exists(os.environ['HOME'] + '/.acct'): - with open(os.environ['HOME'] + '/.acct', 'r') as file: - compute_account = file.read().rstrip() -else: - compute_account = os.popen("id -gn").read().splitlines()[0] -compute_host = 'daint' -compute_queue = 'normal' - -# Controls which flavor of cosmo is used to do the simulation. -target = 'cosmo-art' - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() -# Root directory of the input data (for convenience, not used outside this file) -input_root = '/store/empa/em05/input_cosmoart_processing_chain_example/' -# Root directory of the working space of the chain -work_root = os.path.join(chain_src_dir, 'work') - -# INPUT ====================================================================== # - -# METEO ---------------------------------------------------------------------- # -# meteo files (either path to intput dir or name of mother run) -meteo_dir = os.path.join(input_root, 'meteo') -meteo_prefix = "eas" -meteo_nameformat = meteo_prefix + '%Y%m%d%H' -meteo_inc = 3 # increment between timesteps - -# EMISSIONS ------------------------------------------------------------------ # -# (possibly multiple) emissions-datasets -# for multiple datasets: emissions_dir & emis_gridname should be lists with -# corresponding path/prefix -emissions_dir = [ - os.path.join(input_root, 'emissions', 'emissions_mother_MACC_noSwiss'), - os.path.join(input_root, 'emissions', 'emissions_mother_ch') -] -emis_gridname = ["macc_", "swiss_mu_coarse_"] - -# PHOTO_RATE ----------------------------------------------------------------- # -photo_rate_file = os.path.join(input_root, 'art_photolysis', 'papa_data.d') - -# OBS_NUDGING ---------------------------------------------------------------- # -obs_nudging_dir = os.path.join(input_root, 'obs_nudging') -# nudging-filename: obs_nudging_prefix + -# sim_date.strftime(obs_nudging_date_format) + -# (sim_date + timedelta(days=1) -# .strftime(obs_nudging_date_format) -# Example: obs_nudging temp for simulation on 04.02.2015: -# cdfin_temp-20150204000000-20150205000000 -obs_nudging_prefixes = [ - 'cdfin_amdar', 'cdfin_buoy', 'cdfin_pilot_p', 'cdfin_ship', 'cdfin_synop', - 'cdfin_temp', 'cdfin_wprof' -] -obs_nudging_date_format = "-%Y%m%d%H%M%S" - -# ICBC ----------------------------------------------------------------------- # -# if the data is already preprocessed and just need to be copied, -# - mozart_file_orig is not used -# - mozart_dir_proc is where your data to be copied is -mozart_file_orig = os.path.join(input_root, 'icbc', - 'mozart4geos5_20150625-20150720_Europe.nc') -mozart_dir_proc = os.path.join(input_root, 'icbc', 'processed') -mozart_inc = 6 # increment between timesteps, change at your own risk -mozart_prefix = 'mozart' - -# SIMULATION ================================================================= # - -# INT2LM --------------------------------------------------------------------- # -# Extpar file -int2lm_extpar_dir = os.path.join(input_root, 'extpar') -int2lm_extpar_file = "external_parameter_empa_cosmo14.nc" -# landuse file -int2lm_lu_dir = os.path.join(input_root, 'extpar') -int2lm_lu_file = 'landuse_cosmo14.nc' -# plant functional types -int2lm_pft_dir = os.path.join(input_root, 'extpar') -int2lm_pft_file = 'pft_0.05_andrew.nc' -# Executable -int2lm_bin = os.path.join(input_root, "executables/int2lm") - -int2lm_libgrib_dir = os.path.join(input_root, 'libgrib_api') - -# Namelist and slurm runscript templates -int2lm_namelist = '%s/cases/%s/int2lm_INPUT.cfg' % (chain_src_dir, casename) -int2lm_runjob = '%s/cases/%s/int2lm_runjob.cfg' % (chain_src_dir, casename) - -int2lm_walltime = "00:30:00" - -# Domain decomposition -int2lm_nodes = 4 -int2lm_ntasks_per_node = 36 -int2lm_np_x = 12 -int2lm_np_y = 12 -int2lm_np_tot = int2lm_np_x * int2lm_np_y - -# COSMO ---------------------------------------------------------------------- # -# Executable -cosmo_bin = os.path.join(input_root, "executables/cosmoart") - -# Namelists and slurm runscript templates -cosmo_namelist = '%s/cases/%s/cosmo_INPUT_' % (chain_src_dir, casename) -cosmo_runjob = '%s/cases/%s/cosmo_runjob.cfg' % (chain_src_dir, casename) - -cosmo_walltime = "01:30:00" - -# Domain decomposition -cosmo_np_x = 12 -cosmo_np_y = 12 -cosmo_np_io = 0 -cosmo_np_tot = cosmo_np_x * cosmo_np_y + cosmo_np_io - -assert cosmo_np_tot // 36 == cosmo_np_tot / 36, ( - "n-tasks-per node is fixed at 36. " - "The number of processes has there" - "fore be divisible by 36 to get " - "nodes at full capacity") -cosmo_n_nodes = cosmo_np_tot // 36 - -# POSTPROCESSING ============================================================= # - -# POST_COSMO ----------------------------------------------------------------- # -# Root directory where the output of the chain is copied to -output_root = os.environ['SCRATCH'] + "/processing_chain/output/" + casename - -# VERIFY_CHAIN --------------------------------------------------------------- # -reference_dir = os.path.join(input_root, "reference_output") -# If the output file that gets compared to the reference is not at the location -# that post_cosmo copied it to, give the path to it here. Else leave it 'None' -# output_dir = None -# Use this if the post_cosmo job is not executed -output_dir = os.environ['SCRATCH'] + ( - "/cosmoart_processing_chain/" - "example_cosmoart_mother/2015020400_0_12/cosmo/output") - -# variables_to_check is a dict() with a tuple() of filenames as key and a list -# of variables-names as value. The tuple consists of the filenames of the two -# files to check, the list contains the variable-names that are compared. -# The verify_chain job will look for the files in the reference_dir (first tuple -# element) and the ouput_dir (second tuple element) -values_to_check = { - ("reference_mother_lffd2015020412.nc", "lffd2015020412.nc"): None -} diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_ART.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_ART.cfg deleted file mode 100644 index e376fd0d..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_ART.cfg +++ /dev/null @@ -1,34 +0,0 @@ - &COSMO_ART - artstart=0.0, - lgas=.TRUE., - laero=.TRUE., - lgasini=.TRUE., - lgasbd=.TRUE., - laeroini=.TRUE., - laerobd=.TRUE., - hinc_artbounds=6.0, - hinc_emissions=1.0, - ledms= .FALSE., - lbvoc= .TRUE., - iart_bvocscheme=2, - lfire= .FALSE., - lseas=.TRUE., - ldust=.FALSE., - iart_dustscheme = 1, - lsatveg_dust = .FALSE., - cwhite_dust = 0.75, - lrad_dust=.FALSE., - lrad_aero=.FALSE., - lrad_seas=.FALSE., - lpoint=.FALSE., - lwash=.TRUE., - lgas_emiss_in=.TRUE., - laero_emiss_in=.TRUE., - lkpp=.FALSE., - aerostart=0.0, - ydirin_art = '{cfg.int2lm_output}', - laci_warm = .TRUE., - iaci_cold = 4, - acidelay=1, - ydirin_papa = '{cfg.cosmo_input}/art_photolysis', - / diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_ASS.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_ASS.cfg deleted file mode 100644 index 387e9a44..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_ASS.cfg +++ /dev/null @@ -1,93 +0,0 @@ - &NUDGING - lnudge=.true., - lverif=.true., - mruntyp=2, - lverpas=.true., - itype_obfile = 2, - ycdfdir = '{cfg.cosmo_input}/obs_nudging', - hnudgsta = {cfg.hstart}, - hnudgend = {cfg.hstop}, - tconbox = 240.0, - hversta = 0.001, - hverend = {cfg.hstop}, - khumbal = 100, - ntpscor = 1, - ptpstop = 400.0, - luvgcor = .TRUE., - ltipol = .TRUE., - tipolmx = 3.0, - wtukrsa = 3.0, - wtukrse = 1.0, - ltipsu = .TRUE., - tipmxsu = 1.0, - wtuksua = 1.5, - wtuksue = 0.5, - wtukara = 1.5, - wtukare = 0.5, - msprpar = 1, - msprpsu = 0, - gnudg = .0006, .0006, .0006, .0006, - gnudgsu = .0006, .0006, .0000, .0006, - gnudgar = .0006, .0000, .0006, .0000, - vcorls = .333 , .333 , .04 , .04 , - vcutof = 0.75, 0.75, 1.0 , 1.0 , - vcorlsu = .013 ,.013 , .002 , .00001, - vcutosu = 0.75, 0.75, 4.0 , 0.001 , - vcsnisu = 2500., 2500., 9. , 9. , - rhvfac = 1.0 , 0.0 , 0.83, 0.83, - rhinfl = 0., 70., 0., 0., - rhtfac = 1.3 , 1.43 , 1.3 , 1.3 , - rhiflsu = 70., 70., 100., 70., - rhtfsu = 1.0 , 1.43 , 1.0 , 1.0 , - fnondiv = 0.8 , - cnondiv = 0.1 , - cutofr = 3.5 , 3.5 , 3.5 , 3.5 , - tnondiv = 1.1 , - cutofsu = 2.0 , 3.5 , 2.0 , 2.0 , - topobs = 849., 1099., 799., 699., - botmod = 1099., 1099., 1099., 899., - lscadj = .TRUE.,.TRUE.,.TRUE.,.FALSE., - dtqc = 720., - qcvf = 5.0 , 1.0 ,10.0 , 0.0 , - qcc = 0., 500., 0., .7, - qccsu = 12., 500., 12., .7, - lsynop =.true., - laircf =.true., - ldribu =.true., - ltemp =.true., - lpilot =.true., - lcd137 =.false., - lcd132 =.true., - maxmlo = 600, - maxsgo = 10000, - maxuso = 3000, - nolbc = 5, - altopsu = 100., 5000., 5000., 5000., - thairh = 20., - exnlat = 90., - exslat = -90., - exwlon = -180., - exelon = 180., - lsurfa =.false., - lt2m =.true., - ht2a = 0., - ht2i = 1., - lrh2m = .true., - hh2a = 0., - hh2i = 1., - lprecp = .true., - hprc = 0., - raintp = 12., - lpraof =.false., - lprodr =.true. , - ldiasa =.false., - noctrq = 9, - dinlat = 50., - dislat = 44., - diwlon = 4., - dielon = 12., - ionl = 235, - jonl = 151, - ionl2 = 221, - jonl2 = 131, -/END diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_DIA.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_DIA.cfg deleted file mode 100644 index 360a254f..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_DIA.cfg +++ /dev/null @@ -1,12 +0,0 @@ - &DIACTL - !itype_diag_t2m=2, - ! n0meanval=0, - !nincmeanval=1, - !lgplong=.TRUE., - ! lgpshort=.FALSE., - ! lgpspec=.FALSE., - ! n0gp=0, - !hincgp=1.0, - !stationlist_tot= 0, 0, 50.050, 8.600, 'Frankfurt-Flughafen', - ! 0, 0, 52.220, 14.135, 'Lindenberg_Obs', - / diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_DYN.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_DYN.cfg deleted file mode 100644 index ab9b2794..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_DYN.cfg +++ /dev/null @@ -1,27 +0,0 @@ - &DYNCTL - l2tls=.TRUE., - lcond=.TRUE., - ldyn_bbc=.FALSE., - ldiabf_lh=.TRUE., - l_diff_Smag=.TRUE., - y_scalar_advect='BOTT2_STRANG', - lspubc=.TRUE., - itype_hdiff=2, - hd_dhmax=250., - hd_corr_trcr_bd=0.0, - hd_corr_t_bd=0.75, - hd_corr_u_bd=0.75, - hd_corr_p_bd=0.75, - hd_corr_trcr_in=0.0, - hd_corr_t_in=0.0, - hd_corr_u_in=0.25, - hd_corr_p_in=0.0, - irunge_kutta=1, - irk_order=3, - iadv_order=5, - itype_fast_waves=2, - itype_bbc_w=114, - nrdtau=10, xkd=0.1, - rlwidth=85000.0, - itype_outflow_qrsg=2, - / diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_EPS.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_EPS.cfg deleted file mode 100644 index 6e56ca7a..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_EPS.cfg +++ /dev/null @@ -1,5 +0,0 @@ - &EPSCTL - iepsmem=0, - iepstyp=55, - iepstot=15, - / diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_INI.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_INI.cfg deleted file mode 100644 index aab1855a..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_INI.cfg +++ /dev/null @@ -1,8 +0,0 @@ - &INICTL - ndfi = 1, - nfilt = 1, - tspan = 3600.0, - dtbak = 60.0, - dtfwd = 60.0, - taus = 3600.0, - / diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_IO.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_IO.cfg deleted file mode 100644 index 4b2ac2dd..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_IO.cfg +++ /dev/null @@ -1,95 +0,0 @@ -&IOCTL - yform_read='ncdf', - ymode_read='r ', - lasync_io=.FALSE., - ngribout=1, - nincwait=90, - nmaxwait=300, - l_ke_in_gds=.TRUE., -/ -&DATABASE -/ -&GRIBIN - lan_t_so0=.TRUE., - lan_t_cl=.TRUE., - lan_w_cl=.TRUE., - lan_vio3=.TRUE., - lan_hmo3=.TRUE., - lan_plcov=.TRUE., - lan_lai=.TRUE., - lan_rootdp=.TRUE., - lan_t_snow=.TRUE., - lan_w_i=.TRUE., - lan_w_snow=.TRUE., - lan_rho_snow=.FALSE., - lan_w_so=.TRUE., - hincbound=3.0, - lchkini=.TRUE., - lchkbd=.TRUE., - lbdana=.FALSE., - lana_qi=.TRUE., - llb_qi=.TRUE., - lana_rho_snow=.FALSE., - lana_qr_qs=.FALSE., - ydirini='../../int2lm/output', - ydirbd='../../int2lm/output', - ytunitbd='d', -/ -&GRIBOUT - hcomb=0,8761,1, - lanalysis=.false., - lcheck=.TRUE., - yform_write='ncdf', - ytunit='d', - yvarml= - 'U','V','W','T', - 'T_2M','TD_2M','U_10M','V_10M', - 'P','PP','TKE','PS','PMSL','Z0', - 'FIS ', 'HPBL','CLCT','CLC','CLWC', 'CIWC', - 'QV ','RELHUM ','RELHUM_2M', - 'W_CL ','T_CL ', 'T_S', - 'TQC','TQI','TQV','TQS','TQR','TQG', - 'RAIN_GSP','SNOW_GSP','GRAU_GSP','RAIN_CON', 'SNOW_CON', - 'TOT_PREC', - 'QC','QI','QR','QS','QG','NCCLOUD','NCRAIN','NCSNOW','NCICE','NCGRAUPEL','NCHAIL', - 'QNCLOUD','QNICE', - 'SOHR_RAD','THHR_RAD', - 'REFF_C','REFF_I','SOBS_RAD','THBS_RAD','SOBT_RAD','THBT_RAD','AUMFL_S','AVMFL_S','ATHD_S', - 'ASWDIR_S','ASWDIFD_S','ASWDIFU_S','ALWD_S','ALWU_S','ALHFL_S','ASHFL_S', - 'T_SO','W_SO','T_SNOW','W_SNOW','W_I','QV_S','FRESHSNW','ASOB_S','ATHB_S','APAB_S','ALB_RAD', - 'T_M','T_CL','T_G', - 'W_G1','W_G2','W_CL','W_SO_ICE', - 'RHO_SNOW', - 'SO2 ', 'SULF ', 'NO2 ', 'NO ', 'OZONE ', - 'HNO3 ', 'H2O2 ', 'ALD ', 'HCHO ', 'OP1 ', 'OP2 ', - 'PAA ', 'ORA1 ', 'ORA2 ', 'NH3 ', 'N2O5 ', 'NO3 ', - 'PAN ', 'HC3 ', 'HC5 ', 'HC8 ', 'ETH ', 'CO ', - 'OL2 ', 'OLI ', 'OLT ', 'TOL ', 'XYL ', 'ACO3 ', - 'TPAN ', 'HONO ', 'HNO4 ', 'KET ', 'GLY ', 'MGLY ', - 'DCB ', 'ONIT ', 'CSL ', 'ISO ', 'API ', 'LIM ', 'HACE','ISHP','ISON','MACR','MAHP','MPAN','NALD', - 'vso4_k ', 'vnh4_k ', 'vno3_k ', - 'VSEASA0 ', 'VSEASB0 ', 'VSEASC0 ', 'VSOILA0 ', 'VSOILB0 ', 'VSOILC0 ','VSEASA ', 'VSEASB ', 'VSEASC ', - 'VSOILA ', 'VSOILB ', 'VSOILC ', 'VSO4J ', 'VSO4I ', 'VNH4J ', 'VNH4I ', 'VNO3J ', 'VNO3I ','VSO4SEASA ', 'VSO4SEASB ', 'VSO4SEASC ', 'VNH4Jm ', - 'VNH4Im ', 'VNO3Jm ', 'VNO3Im ', 'VSO4Jm ','VSO4Im', - 'VORGBA1J ', 'VORGBA1I ', - 'VORGBA2J ', 'VORGBA2I ', 'VORGBA3J ', 'VORGBA3I ', - 'VORGBA4J ', 'VORGBA4I ', 'VORGPAJ ', 'VORGPAI ', - 'VORG1J ', 'VORG1I ', 'VORG10I ', 'VORG10J ', - 'VORG100I ', 'VORG100J ', 'VORG1000I ', 'VORG1000J ', - 'VORG1Jm ', 'VORG1Im ', 'VORG10Im ', 'VORG10Jm ', - 'VORG100Im ', 'VORG100Jm ', 'VORG1000Im ', 'VORG1000Jm ', - 'VECJ ', 'VECI ', 'VP25AJ ', 'VP25AI ', - 'VANTHA ', - 'VORGBA1Jm ', 'VORGBA1Im ', 'VORGBA2Jm ', 'VORGBA2Im ', - 'VORGBA3Jm ', 'VORGBA3Im ', 'VORGBA4Jm ', 'VORGBA4Im ', 'VORGPAJm ', - 'VORGPAIm ', - 'VSOOTJ ', 'VSOOTI ', 'VSOOT ', - 'VNU0 ', 'VAC0 ', 'VCORN ', - 'VNU0m ', 'VAC0m ','VSOOT0 ', - 'SOA1','SOA10','SOA100','SOA1000', - l_z_filter=.false., - l_p_filter=.false., - luvmasspoint=.false., - l_fi_pmsl_smooth=.false., - ydir='../output/', -/ diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_OAE.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_OAE.cfg deleted file mode 100644 index bfa835af..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_OAE.cfg +++ /dev/null @@ -1,24 +0,0 @@ -! This is just an example file. Keep the given paths in the OAECTL-group, -! but adjust the number of emitted tracers in 'in_tracers' -&OAECTL - in_tracers = 2, - vertical_profile_nc = '../input/oae/vertical_profiles.nc', - hour_of_day_nc = '../input/oae/hourofday.nc', - day_of_week_nc = '../input/oae/dayofweek.nc', - month_of_year_nc = '../input/oae/monthofyear.nc', - gridded_emissions_nc = '../input/oae/emissions.nc', -/ -&TRACER - yshort_name = 'NO', - ycatl = 'NOX_A_AREA', 'NOX_A_POINT', 'NMVOC_B_AREA', 'NMVOC_B_POINT', - ytpl = 'CO_10', 'CO_10', 'CH4_1', 'CH4_2', - yvpl = 'SNAP-1', 'SNAP-10', 'SNAP-9', 'SNAP-7', - contribl = 0.42, 0.42, 0.69, 0.69, -/ -&TRACER - yshort_name = 'NO2', - ycatl = 'NOX_A_AREA', 'NOX_A_POINT', 'NMVOC_A_AREA', 'NMVOC_A_POINT', - ytpl = 'CO2_3', 'CO_6', 'CO_8', 'CO_2', - yvpl = 'SNAP-7', 'SNAP-5', 'SNAP-4', 'SNAP-2', - contribl = 0.22, 0.22, 0.1, 0.1, -/ \ No newline at end of file diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_ORG.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_ORG.cfg deleted file mode 100644 index 7e961988..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_ORG.cfg +++ /dev/null @@ -1,58 +0,0 @@ - &LMGRID - startlat_tot = -9.54, - startlon_tot = -16.08, - pollat = 43.0, pollon = -170.0, - dlat = 0.12, dlon = 0.12, - ie_tot = 192, je_tot = 164, ke_tot=60, - / - &RUNCTL - hstart = {cfg.hstart}, - hstop = {cfg.hstop}, - dt = 60.0, - ydate_ini='{cfg.inidate_yyyymmddhh}', - nprocx = {cfg.cosmo_np_x}, - nprocy = {cfg.cosmo_np_y}, - nprocio= 0, -! num_asynio_comm = 1, num_iope_percomm = 1, - lphys = .TRUE., - luse_rttov = .FALSE., - luseobs = .TRUE., - leps = .FALSE., - lreorder = .FALSE., - lreproduce = .TRUE., - itype_timing = 4, - ldatatypes = .FALSE., - ltime_barrier = .FALSE., - ncomm_type = 3, - l_pollen = .FALSE., - nboundlines = 3, - l_cosmo_art= .TRUE., - idbg_level = 1, - lprintdeb_all=.TRUE., - ldebug_art=.TRUE., - ldump_ascii=.FALSE., -! lartif_data=.FALSE, - / - &TUNING - clc_diag = 0.5, - pat_len = 500.0, - tur_len = 150.0, - rlam_heat = 1.0, - rlam_mom = 0.0, - rat_lam = 1.0, - rat_can = 1.0, - rat_sea = 20.0, - c_lnd = 2.0, - c_soil = 1.0, - c_sea = 1.5, - z0m_dia = 0.2, - crsmin = 150.0, - wichfakt = 0.0, - qc0 = 0.0002, - q_crit = 1.6, - mu_rain = 0.5, - rain_n0_factor = 0.1, - v0snow = 20, - tkhmin = 0.4, - tkmmin = 0.4, - / diff --git a/cases/cosmo-art-mother-test/cosmo_INPUT_PHY.cfg b/cases/cosmo-art-mother-test/cosmo_INPUT_PHY.cfg deleted file mode 100644 index 58c47026..00000000 --- a/cases/cosmo-art-mother-test/cosmo_INPUT_PHY.cfg +++ /dev/null @@ -1,45 +0,0 @@ - &PHYCTL - lgsp=.TRUE., - lrad=.TRUE., - lradtopo = .false., - nradcoarse=1, - lradf_avg=.FALSE. - hincrad=1.0, - lforest=.true., - itype_albedo=1, ! geaendert - ltur=.TRUE., - ninctura=1, - lexpcor=.FALSE., - ltmpcor=.FALSE., - lprfcor=.FALSE., - lnonloc=.FALSE., - lcpfluc=.FALSE., - limpltkediff=.TRUE., - itype_turb=3, - imode_turb=1, - itype_tran=2, - imode_tran=1, - itype_wcld=2, - icldm_rad =4, - icldm_turb=2, - icldm_tran=0, - itype_synd=2, - lsoil=.TRUE., - itype_evsl=2, - itype_trvg=2, - lmulti_layer=.TRUE., - lmelt=.TRUE., - lmelt_var=.TRUE., - ke_soil = 7, - czml_soil = 0.005, 0.02, 0.06, 0.18, 0.54, 1.62, 4.86, 14.58, - lconv=.TRUE., - lcape=.FALSE., - lconf_avg=.TRUE., - lconv_inst=.TRUE., - itype_conv=0, - nincconv=5, - llake=.FALSE., - lseaice=.FALSE., - lsso=.FALSE., - ltkesso=.TRUE., - / diff --git a/cases/cosmo-art-mother-test/cosmo_runjob.cfg b/cases/cosmo-art-mother-test/cosmo_runjob.cfg deleted file mode 100644 index fdf63479..00000000 --- a/cases/cosmo-art-mother-test/cosmo_runjob.cfg +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -l -#SBATCH --account={cfg.compute_account} -#SBATCH --job-name="cosmo_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --time={cfg.cosmo_walltime} -#SBATCH --nodes={cfg.cosmo_n_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node=36 -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --output={logfile} -#SBATCH --chdir={cfg.cosmo_work} -#SBATCH --open-mode=append - -export OMP_NUM_THREADS=1 - -module load daint-{cfg.constraint} - -ulimit -s unlimited -ulimit -a - -rm -f YU* -rm -f M_* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - - -srun -u ./cosmoart >> {logfile} 2>&1 -pid=$? - - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo "Executing COSMO failed" >> {logfile}; exit 1; }} - -# check whether COSMO was successful by calculating name of the last -# output file that should have been created - -hoursSim=$(expr {cfg.hstop} % 24) -daysSim=$(expr {cfg.hstop} / 24) # bash does not know floating points, it truncates to integer -hoursSimNice=$(printf "%02d" $hoursSim) -daysSimNice=$(printf "%02d" $daysSim) -lastHourFile="lfff${{daysSimNice}}${{hoursSimNice}}0000.nc" - -[[ ! -f {cfg.cosmo_output}${{lastHourFile}} ]] || {{ echo "COSMO failed" >> {logfile}; exit 1; }} - -# copy log file -cp {logfile} {logfile_finish} diff --git a/cases/cosmo-art-mother-test/int2lm_INPUT.cfg b/cases/cosmo-art-mother-test/int2lm_INPUT.cfg deleted file mode 100644 index 5f3df35e..00000000 --- a/cases/cosmo-art-mother-test/int2lm_INPUT.cfg +++ /dev/null @@ -1,218 +0,0 @@ -&CONTRL - ydate_ini='{cfg.inidate_int2lm_yyyymmddhh}', - linitial=.TRUE., lboundaries=.TRUE., - hstart={cfg.hstart_int2lm}, - hstop={cfg.hstop_int2lm}, - hincbound=3.0, - nprocx={cfg.int2lm_np_x}, - nprocy={cfg.int2lm_np_y}, - yinput_model = 'IFS', - luse_t_skin=.TRUE., - lvertwind_ini=.TRUE., - lvertwind_bd=.TRUE., - lfilter_pp=.true., - llbc_smooth=.true., - lfilter_oro=.true., - ilow_pass_oro=4, - numfilt_oro=1, - ilow_pass_xso=5, - lxso_first=.FALSE., - numfilt_xso=1, - rxso_mask=750.0, - eps_filter=0.1, - norder_filter=5, - l_topo_z=.false., - rfill_valley=0.0, - ifill_valley=7, - lprog_qi=.TRUE., - lprog_qr_qs=.FALSE., - lprog_qg=.FALSE., - itype_w_so_rel=1, - lpost_0006=.TRUE., - lbdclim=.FALSE., - ltime_mean=.TRUE., - luvcor=.TRUE., - lreorder=.FALSE., - lprog_rho_snow=.FALSE., - lmulti_layer_lm=.TRUE., - lforest=.TRUE., - llake=.true., - lsso = .false., - lradtopo=.false., - l_smi = .TRUE., - idbg_level= 55, - l_art = .TRUE., - l_art_nested = .FALSE., -/ -&GRID_IN - startlon_in_tot = -18.25, - startlat_in_tot = -10.625, - pollon_in = -170.0, pollat_in = 43.0, - dlon_in = 0.125, dlat_in = 0.125, - ie_in_tot = 211, je_in_tot = 178, - ke_in_tot = 137, - pcontrol_fi=30000, -/ -&LMGRID -!COSMO-14 d1EU - startlon_tot = -16.08, - startlat_tot = -9.54, - pollon = -170.0, - pollat = 43.0, - dlon = 0.12, - dlat = 0.12, - ielm_tot = 192, - jelm_tot = 164, - kelm_tot = 60, - ivctype = 4, - irefatm = 2, - lanalyt_calc_t0p0 = .TRUE., - vcflat = 11357.0, - vcoord_d = 23588.50,22395.93,21304.04, 20307.39, 19399.95, - 18574.03, 17821.88, 17135.64, 16507.79, 15930.60, - 15396.52, 14897.86, 14427.98, 13981.10, 13551.52, - 13133.53, 12721.37, 12312.04, 11900.03, 11485.37, - 11068.19, 10648.54, 10226.48, 9802.09, 9375.43, - 8946.58, 8515.59, 8082.55, 7647.52, 7210.55, - 6771.96, 6332.38, 5896.41, 5468.04, 5050.84, - 4647.96, 4261.91, 3893.26, 3542.15, 3208.52, - 2892.23, 2593.71, 2312.95, 2049.75, 1803.89, - 1575.57, 1364.68, 1170.90, 993.84, 833.44, - 689.53, 561.52, 448.82, 350.95, 267.55, - 197.67, 137.23, 87.33, 48.44, 20.00, 0.00, -/ -&DATABASE -/ -&DATA - ie_ext=196, je_ext=168, - ylmext_lfn='{cfg.int2lm_extpar_file}', - ylmext_cat='../input/extpar/', - ylmext_form_read='ncdf', - yinext_lfn='{cfg.meteo_prefix}{cfg.inidate_int2lm_yyyymmddhh}', - yinext_cat='../input/meteo/', - yinext_form_read='apix', - yin_cat='../input/meteo/', - yinput_type='analysis', - yin_form_read='apix', - ylm_cat='../output/', - nprocess_ini = 131, nprocess_bd = 132, - ylm_form_write = "ncdf", - ytunit_out = "d", - ytunit_in = "d", - ymode_write = 'w b', - l_ke_in_gds = .TRUE., -/ -&PRICTR - lchkin = .FALSE., - lchkout = .FALSE., -/ -&ARTCONTROL - nart_ds = 5, -/ -&ARTDATASET - startlon_tot=-16.32, - dlon=0.12, - startlat_tot=-9.78, - dlat=0.12, - pollon=-170.0, - pollat=43.0, - ie_tot=196, - je_tot=168, - ke_tot=7, - yvertical_axis_type="geometric", - yvertical_method="D", - ylfn_prefix = "emis_", - yvarlist= "ORA2e","KETe","ALDe","HCHOe","CSLe","XYLe","TOLe", - "OLIe","OLTe","OL2e","HC8e","HC5e","HC3e","ETHe", - "SO2e","NOe","NO2e","NH3e","COe","ISOe","MGLYe","ORA1e", - "VSO4Je","VSO4Ie","VP25AIe","VP25AJe","VORGPAIe", - "VORGPAJe","VANTHAe","VSOOTe", - yinterp_type="N", - hinc=1.0, - lconst_in_time=.FALSE., - lconserve_mass=.TRUE., - ydirin='../input/emissions/', -/ -&ARTDATASET - startlon_tot=-16.32, - dlon=0.12, - startlat_tot=-9.78, - dlat=0.12, - pollon=-170.0, - pollat=43.0, - ie_tot=196, - je_tot=168, - ke_tot=7, - yvertical_axis_type="geometric", - yvertical_method="D", - ylfn_prefix = "emis_", - yvarlist= "ORA2e","KETe","ALDe","HCHOe","CSLe","XYLe","TOLe", - "OLIe","OLTe","OL2e","HC8e","HC5e","HC3e","ETHe", - "SO2e","NOe","NO2e","NH3e","COe","ISOe","MGLYe","ORA1e", - "VSO4Je","VSO4Ie","VP25AIe","VP25AJe","VORGPAIe", - "VORGPAJe","VANTHAe","VSOOTe", - yinterp_type="N", - hinc=1.0, - lconst_in_time=.FALSE., - lconserve_mass=.TRUE., - ydirin='../input/emissions2/', - ycombine_action="A", -/ -&ARTDATASET - startlon_tot= -20, - dlon=2.5, - startlat_tot= 31.26316, - dlat=1.89473, - ie_tot=21, - je_tot=18, - ke_tot=56, - yvertical_axis_type="hyb_sig_pr", - yvertical_method="I", - ylfn_prefix ='mozart_', - yvarlist="OZONE","NO","NO2","NO3","HNO3","OH","ONIT","H2O2","HO2","HNO4","N2O5","NH3", - "ALD","HCHO","CO","ETH","PAN","MPAN","OL2","ORA2","GLY","OP1","OP2","PAA","MGLY","CSL","HC5","HC3","ISO","TOL","KET","MACR","SO2", - "VSOILA","VSOILB","VSOILC","VSOOTJ","VORG1Jm","VSO4Jm", - yinterp_type="L", - hinc=6.0, - lconst_in_time=.FALSE., - lconserve_mass=.FALSE. - ydirin='../input/icbc/', -/ -&ARTDATASET - startlon_tot =-16.32, - dlon=0.12, - startlat_tot =-9.78, - dlat=0.12, - pollon=-170., - pollat=43., - ie_tot=196, - je_tot=168, - ke_tot=1, - ylfn_prefix = 'landuse', - yvarlist="PLUSE1","PLUSE2","PLUSE3","PLUSE4","PLUSE5", - "PLUSE6","PLUSE7","PLUSE8","PLUSE9","PLUSE10", - "PLUSE11","PLUSE12","PLUSE13","PLUSE14","PLUSE15", - "PLUSE16","PLUSE17","PLUSE18","PLUSE19","PLUSE20", - "PLUSE21","PLUSE22","PLUSE23", - lconst_in_time=.TRUE., - ydirin="../input/extpar/", - yinterp_type= 'N', - lconserve_mass = .FALSE., -/ -&ARTDATASET - startlon_tot =-14.9770802, - dlon=0.0500069454, - startlat_tot =30.0333426, - dlat=0.0500138927, - ie_tot=1201, - je_tot=901, - ke_tot=1, - ylfn_prefix = "pft", - yvarlist="PFT1","PFT2","PFT3","PFT4","PFT5", - "PFT6","PFT7","PFT8","PFT9","PFT10", - "PFT11","PFT12","PFT13","PFT14","PFT15", - lconst_in_time=.TRUE., - ydirin="../input/extpar/", - yinterp_type= 'N', - lconserve_mass = .FALSE., -/ diff --git a/cases/cosmo-art-mother-test/int2lm_runjob.cfg b/cases/cosmo-art-mother-test/int2lm_runjob.cfg deleted file mode 100644 index 52af77c8..00000000 --- a/cases/cosmo-art-mother-test/int2lm_runjob.cfg +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name=int2lm_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime} -#SBATCH --time={cfg.int2lm_walltime} -#SBATCH --nodes={cfg.int2lm_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.int2lm_ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --account={cfg.compute_account} -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.int2lm_work} - - -module load daint-{cfg.constraint} -module load cray-netcdf - -ulimit -s unlimited -ulimit -a - -export OMP_NUM_THREADS=1 -export api_dir={cfg.int2lm_work}/libgrib_api/v1.20.0.2/cray -export GRIB_DEFINITION_PATH=$api_dir/share/grib_api/definitions:$api_dir/cosmo_definitions/definitions -export GRIB_SAMPLES_PATH=$api_dir/cosmo_definitions/samples -export HDF5_DISABLE_VERSION_CHECK=1 - - -rm -f YU* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u -n {cfg.int2lm_np_tot} ./int2lm >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo \"Executing INT2LM MPI command failed\" >> job.out; exit 1; }} - -rm -f diag* - -# check whether INT2LM was successful by checking for presence of last -# meteofile that should have been processed -firstsecs=$(date -u --date "{ini_day} {ini_hour}" +%s) - -let lastsecs="firstsecs+{cfg.hstop_int2lm}*3600" -lastyyyymmddhh=$(date -u --date "1970-01-01 UTC +${{lastsecs}} sec" +%Y%m%d%H) -lastHourFile="lbfd${{lastyyyymmddhh}}.nc" - -echo last file processed is $lastHourFile >> {logfile} - -[[ ! -f ../output/${{lastHourFile}} ]] && {{ echo "INT2LM failed" >> {logfile}; exit 1; }} - -cp {logfile} {logfile_finish} diff --git a/cases/cosmo-art-nested-test/config.py b/cases/cosmo-art-nested-test/config.py deleted file mode 100644 index 6db1df82..00000000 --- a/cases/cosmo-art-nested-test/config.py +++ /dev/null @@ -1,142 +0,0 @@ -import os -""" -Configuration file for the 'cosmo-art-nested-test' case with COSMO-ART -""" - -# GENERAL SETTINGS =========================================================== -user = os.environ['USER'] -if os.path.exists(os.environ['HOME'] + '/.acct'): - with open(os.environ['HOME'] + '/.acct', 'r') as file: - compute_account = file.read().rstrip() -else: - compute_account = os.popen("id -gn").read().splitlines()[0] -compute_host = 'daint' -compute_queue = 'normal' - -# Controls which flavor of cosmo is used to do the simulation. -target = 'cosmo-art' - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() -# Root directory of the input data (for convenience, not used outside this file) -input_root = '/store/empa/em05/input_cosmoart_processing_chain_example/' -# Root directory of the working space of the chain -work_root = os.path.join(chain_src_dir, 'work') - -# INPUT ====================================================================== # - -# METEO ---------------------------------------------------------------------- # -# meteo files (either path to intput dir or name of mother run) -meteo_dir = "example_cosmoart_mother" -meteo_prefix = "eas" -meteo_nameformat = meteo_prefix + '%Y%m%d%H' - -# EMISSIONS ------------------------------------------------------------------ # -# (possibly multiple) emissions-datasets -# for multiple datasets: emissions_dir & emis_gridname should be lists with -# corresponding path/prefix -emissions_dir = [ - os.path.join(input_root, 'emissions', 'emissions_nest_MACC_noSwiss'), - os.path.join(input_root, 'emissions', 'emissions_nest_ch') -] -emis_gridname = ["macc_", "swiss_mu_fine_"] - -# PHOTO_RATE ----------------------------------------------------------------- # -photo_rate_file = os.path.join(input_root, 'art_photolysis', 'papa_data.d') - -# OBS_NUDGING ---------------------------------------------------------------- # -obs_nudging_dir = os.path.join(input_root, 'obs_nudging') -# nudging-filename: obs_nudging_prefix + -# sim_date.strftime(obs_nudging_date_format) + -# (sim_date + timedelta(days=1) -# .strftime(obs_nudging_date_format) -# Example: obs_nudging temp for simulation on 04.02.2015: -# cdfin_temp-20150204000000-20150205000000 -obs_nudging_prefixes = [ - 'cdfin_amdar', 'cdfin_buoy', 'cdfin_pilot_p', 'cdfin_ship', 'cdfin_synop', - 'cdfin_temp', 'cdfin_wprof' -] -obs_nudging_date_format = "-%Y%m%d%H%M%S" - -# SIMULATION ================================================================= # - -# INT2LM --------------------------------------------------------------------- # -# Extpar file -int2lm_extpar_dir = os.path.join(input_root, 'extpar') -int2lm_extpar_file = "Europe_0.02x0.02.nc" -# landuse file -int2lm_lu_dir = os.path.join(input_root, 'extpar') -int2lm_lu_file = 'landuse_cosmo2.nc' -# plant functional types -int2lm_pft_dir = os.path.join(input_root, 'extpar') -int2lm_pft_file = 'pft_0.05_andrew.nc' -# Executable -int2lm_bin = os.path.join(input_root, "executables/int2lm") - -int2lm_libgrib_dir = os.path.join(input_root, 'libgrib_api') - -# Namelist and slurm runscript templates -int2lm_namelist = '%s/cases/%s/int2lm_INPUT.cfg' % (chain_src_dir, casename) -int2lm_runjob = '%s/cases/%s/int2lm_runjob.cfg' % (chain_src_dir, casename) - -int2lm_walltime = "00:30:00" - -# Domain decomposition -int2lm_nodes = 4 -int2lm_ntasks_per_node = 36 -int2lm_np_x = 12 -int2lm_np_y = 12 -int2lm_np_tot = int2lm_np_x * int2lm_np_y - -# COSMO ---------------------------------------------------------------------- # -# Executable -cosmo_bin = os.path.join(input_root, "executables/cosmoart") - -# Namelists and slurm runscript templates -cosmo_namelist = '%s/cases/%s/cosmo_INPUT_' % (chain_src_dir, casename) -cosmo_runjob = '%s/cases/%s/cosmo_runjob.cfg' % (chain_src_dir, casename) - -cosmo_walltime = "01:30:00" - -# Domain decomposition -cosmo_np_x = 12 -cosmo_np_y = 12 -cosmo_np_io = 0 -cosmo_np_tot = cosmo_np_x * cosmo_np_y + cosmo_np_io - -assert cosmo_np_tot // 36 == cosmo_np_tot / 36, ( - "n-tasks-per node is fixed at 36. " - "The number of processes has there" - "fore be divisible by 36 to get " - "nodes at full capacity") -cosmo_n_nodes = cosmo_np_tot // 36 - -# POSTPROCESSING ============================================================= # - -# POST_COSMO ----------------------------------------------------------------- # -# Root directory where the output of the chain is copied to -output_root = os.environ['SCRATCH'] + "/processing_chain/output/" + casename - -# VERIFY_CHAIN --------------------------------------------------------------- # -reference_dir = os.path.join(input_root, "reference_output") - -# If the output file that gets compared to the reference is not at the location -# that post_cosmo copied it to, give the path to it here. Else leave it 'None' -# output_dir = None -# Use this if the post_cosmo job is not executed -output_dir = os.environ['SCRATCH'] + ( - "/cosmoart_processing_chain/" - "example_cosmoart_nested/2015020400_0_12/cosmo/output") - -# variables_to_check is a dict() with a tuple() of filenames as key and a list -# of variables-names as value. The tuple consists of the filenames of the two -# files to check, the list contains the variable-names that are compared. -# The verify_chain job will look for the files in the reference_dir (first tuple -# element) and the ouput_dir (second tuple element) -values_to_check = { - ("reference_nested_lffd2015020412.nc", "lffd2015020412.nc"): None -} diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_ART.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_ART.cfg deleted file mode 100644 index 8f5c098d..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_ART.cfg +++ /dev/null @@ -1,33 +0,0 @@ -&COSMO_ART - lgas=.TRUE., - laero=.TRUE., - lgasini=.TRUE., - lgasbd=.TRUE., - laeroini=.TRUE., - laerobd=.TRUE., - hinc_artbounds=6.0, - hinc_emissions=1.0, - ledms= .FALSE., - lbvoc= .TRUE., - iart_bvocscheme=2, - lfire= .FALSE., - lseas=.TRUE., - ldust=.FALSE., - iart_dustscheme = 1, - lsatveg_dust = .FALSE., - cwhite_dust = 0.75, - lrad_dust=.FALSE., - lrad_aero=.FALSE., - lrad_seas=.FALSE., - lpoint=.FALSE., - lwash=.TRUE., - lgas_emiss_in=.TRUE., - laero_emiss_in=.TRUE., - lkpp=.FALSE., - aerostart=0.0, - ydirin_art = '{cfg.int2lm_output}', - laci_warm = .TRUE., - iaci_cold = 4, - acidelay = 1, - ydirin_papa = '{cfg.cosmo_input}/art_photolysis', -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_ASS.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_ASS.cfg deleted file mode 100644 index f079b364..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_ASS.cfg +++ /dev/null @@ -1,94 +0,0 @@ -&NUDGING - lnudge = .TRUE., - lverif=.TRUE., - mruntyp=2, - lverpas=.TRUE., - itype_obfile = 2, - ycdfdir = '{cfg.cosmo_input}/obs_nudging', - hnudgsta = {cfg.hstart}, - hnudgend = {cfg.hstop}, - tconbox = 240.0, - hversta = 0.001, - hverend = {cfg.hstop}, - khumbal = 100, - ntpscor = 1, - ptpstop = 400.0, - luvgcor = .TRUE., - ltipol = .TRUE., - tipolmx = 3.0, - wtukrsa = 3.0, - wtukrse = 1.0, - ltipsu = .TRUE., - tipmxsu = 1.0, - wtuksua = 1.5, - wtuksue = 0.5, - wtukara = 1.5, - wtukare = 0.5, - msprpar = 1, - msprpsu = 0, - gnudg = .0006, .0006, .0006, .0006, - gnudgsu = .0006, .0006, .0000, .0006, - gnudgar = .0006, .0000, .0006, .0000, - vcorls = .333 , .333 , .04 , .04 , - vcutof = 0.75, 0.75, 1.0 , 1.0 , - vcorlsu = .013 , .013 , .002 , .00001, - vcutosu = 0.75, 0.75, 4.0 , 0.001 , - vcsnisu = 2500., 2500., 9. , 9. , - rhvfac = 1.0 , 0.0 , 0.83, 0.83, - rhinfl = 0., 70., 0., 0., - rhtfac = 1.3 , 1.43 , 1.3 , 1.3 , - rhiflsu = 70., 70., 100., 70., - rhtfsu = 1.0 , 1.43 , 1.0 , 1.0 , - fnondiv = 0.8 , - cnondiv = 0.1 , - cutofr = 3.5 , 3.5 , 3.5 , 3.5 , - tnondiv = 1.1 , - cutofsu = 2.0 , 3.5 , 2.0 , 2.0 , - topobs = 849., 1099., 799., 699., - botmod = 1099., 1099., 1099., 899., - lscadj =.TRUE.,.TRUE.,.TRUE.,.FALSE., - dtqc = 720., - qcvf = 5.0 , 1.0 ,10.0 , 0.0 , - qcc = 0., 500., 0., .7, - qccsu = 12., 500., 12., .7, - lsynop =.true., - laircf =.true., - ldribu =.true., - ltemp =.true., - lpilot =.true., - lcd137 =.false., - lcd132 =.true., - maxmlo = 600, - maxsgo = 10000, - maxuso = 3000, - nolbc = 5, - altopsu = 100., 5000., 5000., 5000., - thairh = 20., - exnlat = 90., - exslat = -90., - exwlon = -180., - exelon = 180., - lsurfa =.false., - lt2m =.true., - ht2a = 0., - ht2i = 1., - lrh2m =.true., - hh2a = 0., - hh2i = 1., - lprecp =.true., - hprc = 0., - raintp = 12., - lpraof =.false., - lprodr =.true. , - ldiasa =.false., - noctrq = 9, - dinlat = 50., - dislat = 44., - diwlon = 4., - dielon = 12., - ionl = 235, - jonl = 151, - ionl2 = 221, - jonl2 = 131, -/END - diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_DIA.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_DIA.cfg deleted file mode 100644 index f9ef0d42..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_DIA.cfg +++ /dev/null @@ -1,12 +0,0 @@ -&DIACTL - !itype_diag_t2m=2, - ! n0meanval=0, - !nincmeanval=1, - !lgplong=.TRUE., - ! lgpshort=.FALSE., - ! lgpspec=.FALSE., - ! n0gp=0, - !hincgp=1.0, - !stationlist_tot= 0, 0, 50.050, 8.600, 'Frankfurt-Flughafen', - ! 0, 0, 52.220, 14.135, 'Lindenberg_Obs', -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_DYN.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_DYN.cfg deleted file mode 100644 index 8a65bf06..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_DYN.cfg +++ /dev/null @@ -1,30 +0,0 @@ -&DYNCTL - l2tls=.TRUE., - lcond=.TRUE., - ldyn_bbc=.FALSE., - ldiabf_lh=.TRUE., - l_diff_Smag=.TRUE., - y_scalar_advect='BOTT2_STRANG', -! y_scalar_advect='SL3_MF', - lspubc=.TRUE., - itype_spubc=3, - itype_hdiff=2, - hd_dhmax=250., - hd_corr_trcr_bd=0.0, - hd_corr_t_bd=0.75, - hd_corr_u_bd=0.75, - hd_corr_p_bd=0.75, - hd_corr_trcr_in=0.0, - hd_corr_t_in=0.0, - hd_corr_u_in=0.25, - hd_corr_p_in=0.0, - irunge_kutta=1, - irk_order=3, - iadv_order=5, - itype_fast_waves=2, - itype_bbc_w=114, - nrdtau=3, - xkd=0.1, - rlwidth=35000.0, - itype_outflow_qrsg=2, -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_EPS.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_EPS.cfg deleted file mode 100644 index 722a45f3..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_EPS.cfg +++ /dev/null @@ -1,5 +0,0 @@ -&EPSCTL - iepsmem=0, - iepstyp=55, - iepstot=15, -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_INI.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_INI.cfg deleted file mode 100644 index 82fb98d8..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_INI.cfg +++ /dev/null @@ -1,8 +0,0 @@ -&INICTL - ndfi = 1, - nfilt = 1, - tspan = 3600.0, - dtbak = 60.0, - dtfwd = 60.0, - taus = 3600.0, -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_IO.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_IO.cfg deleted file mode 100644 index a86912f9..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_IO.cfg +++ /dev/null @@ -1,94 +0,0 @@ -&IOCTL - yform_read='ncdf', - lasync_io=.FALSE., - ngribout=1, - nincwait=90, - nmaxwait=300, -/ -&DATABASE -/ -&GRIBIN - lan_t_so0=.TRUE., - lan_t_cl=.TRUE., - lan_w_cl=.TRUE., - lan_vio3=.TRUE., - lan_hmo3=.TRUE., - lan_plcov=.TRUE., - lan_lai=.TRUE., - lan_rootdp=.TRUE., - lan_t_snow=.TRUE., - lan_w_i=.TRUE., - lan_w_snow=.TRUE., - lan_rho_snow=.FALSE., - lan_w_so=.TRUE., - hincbound=1.0, - lchkini=.TRUE., - lchkbd=.TRUE., - lbdana=.FALSE., - lana_qi=.TRUE., - llb_qi=.TRUE., - lana_rho_snow=.FALSE., - lana_qr_qs=.FALSE., - ydirini='../../int2lm/output', - ydirbd='../../int2lm/output', - ytunitbd='d', -/ -&GRIBOUT - hcomb=0,8761,1, - lanalysis=.false., - lcheck=.true., - lwrite_const=.true., - yform_write='ncdf', - yvarml= - 'U','V','W','T', - 'T_2M','TD_2M','U_10M','V_10M', - 'P','PP','TKE','PS','PMSL','Z0', - 'FIS ', 'HPBL','CLCT','CLC','CLWC', 'CIWC', - 'QV ','RELHUM ','RELHUM_2M', - 'W_CL ','T_CL ', 'T_S', - 'TQC','TQI','TQV','TQS','TQR','TQG', - 'RAIN_GSP','SNOW_GSP','GRAU_GSP','RAIN_CON', 'SNOW_CON', - 'TOT_PREC', - 'QC','QI','QR','QS','QG','NCCLOUD','NCRAIN','NCSNOW','NCICE','NCGRAUPEL','NCHAIL', - 'QNCLOUD','QNICE', - 'SOHR_RAD','THHR_RAD', - 'REFF_C','REFF_I','SOBS_RAD','THBS_RAD','SOBT_RAD','THBT_RAD','AUMFL_S','AVMFL_S','ATHD_S', - 'ASWDIR_S','ASWDIFD_S','ASWDIFU_S','ALWD_S','ALWU_S','ALHFL_S','ASHFL_S', - 'T_SO','W_SO','T_SNOW','W_SNOW','W_I','QV_S','FRESHSNW','ASOB_S','ATHB_S','APAB_S','ALB_RAD', - 'T_M','T_CL','T_G', - 'W_G1','W_G2','W_CL','W_SO_ICE', - 'RHO_SNOW','RHO', - 'SO2 ', 'SULF ', 'NO2 ', 'NO ', 'OZONE ', - 'HNO3 ', 'H2O2 ', 'ALD ', 'HCHO ', 'OP1 ', 'OP2 ', - 'PAA ', 'ORA1 ', 'ORA2 ', 'NH3 ', 'N2O5 ', 'NO3 ', - 'PAN ', 'HC3 ', 'HC5 ', 'HC8 ', 'ETH ', 'CO ', - 'OL2 ', 'OLI ', 'OLT ', 'TOL ', 'XYL ', 'ACO3 ', - 'TPAN ', 'HONO ', 'HNO4 ', 'KET ', 'GLY ', 'MGLY ', - 'DCB ', 'ONIT ', 'CSL ', 'ISO ', 'API ', 'LIM ', 'HACE','ISHP','ISON','MACR','MAHP','MPAN','NALD', - 'vso4_k ', 'vnh4_k ', 'vno3_k ', - 'VSEASA0 ', 'VSEASB0 ', 'VSEASC0 ', 'VSOILA0 ', 'VSOILB0 ', 'VSOILC0 ','VSEASA ', 'VSEASB ', 'VSEASC ', - 'VSOILA ', 'VSOILB ', 'VSOILC ', 'VSO4J ', 'VSO4I ', 'VNH4J ', 'VNH4I ', 'VNO3J ', 'VNO3I ','VSO4SEASA ', 'VSO4SEASB ', 'VSO4SEASC ', 'VNH4Jm ', - 'VNH4Im ', 'VNO3Jm ', 'VNO3Im ', 'VSO4Jm ','VSO4Im', - 'VORGBA1J ', 'VORGBA1I ', - 'VORGBA2J ', 'VORGBA2I ', 'VORGBA3J ', 'VORGBA3I ', - 'VORGBA4J ', 'VORGBA4I ', 'VORGPAJ ', 'VORGPAI ', - 'VORG1J ', 'VORG1I ', 'VORG10I ', 'VORG10J ', - 'VORG100I ', 'VORG100J ', 'VORG1000I ', 'VORG1000J ', - 'VORG1Jm ', 'VORG1Im ', 'VORG10Im ', 'VORG10Jm ', - 'VORG100Im ', 'VORG100Jm ', 'VORG1000Im ', 'VORG1000Jm ', - 'VECJ ', 'VECI ', 'VP25AJ ', 'VP25AI ', - 'VANTHA ', - 'VORGBA1Jm ', 'VORGBA1Im ', 'VORGBA2Jm ', 'VORGBA2Im ', - 'VORGBA3Jm ', 'VORGBA3Im ', 'VORGBA4Jm ', 'VORGBA4Im ', 'VORGPAJm ', - 'VORGPAIm ', - 'VSOOTJ ', 'VSOOTI ', 'VSOOT ', - 'VNU0 ', 'VAC0 ', 'VCORN ', - 'VNU0m ', 'VAC0m ','VSOOT0 ', 'SOA1','SOA10','SOA100','SOA1000', - 'TAU_AERO_ART', - yvarpl=' ', - yvarzl=' ', - yvarsl='', - zlev=500.0,1000.0,1500.0,2000.0,3000.0,5000.0, - ydir='../output/', - ytunit='d', -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_ORG.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_ORG.cfg deleted file mode 100644 index cac3258c..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_ORG.cfg +++ /dev/null @@ -1,57 +0,0 @@ -&LMGRID - startlat_tot = -1.74, - startlon_tot = -3.48, - pollat = 43.0, pollon = -170.0, - dlat = 0.02, dlon = 0.02, - ie_tot = 220, je_tot = 142, ke_tot=60, -/ -&RUNCTL - hstart = {cfg.hstart}, - hstop = {cfg.hstop}, - dt = 20.0, - ydate_ini='{cfg.inidate_yyyymmddhh}', - nprocx = {cfg.cosmo_np_x}, - nprocy = {cfg.cosmo_np_y}, - nprocio= 0, -! num_asynio_comm = 1, num_iope_percomm = 1, - lphys = .TRUE., - luse_rttov = .FALSE., - luseobs = .TRUE., - leps = .FALSE., - lreorder = .FALSE., - lreproduce = .TRUE., - itype_timing = 4, - ldatatypes = .FALSE., - ltime_barrier = .FALSE., - ncomm_type = 3, - l_pollen = .FALSE., - nboundlines = 3, - l_cosmo_art= .TRUE., - idbg_level = 1, - lprintdeb_all = .TRUE., - ldebug_art = .TRUE., -! lartif_data = .FALSE, -/ -&TUNING - clc_diag = 0.5, - pat_len = 500.0, - tur_len = 150.0, - rlam_heat = 1.0, - rlam_mom = 0.0, - rat_lam = 1.0, - rat_can = 1.0, - rat_sea = 20.0, - c_lnd = 2.0, - c_soil = 1.0, - c_sea = 1.5, - z0m_dia = 0.2, - crsmin = 150.0, - wichfakt = 0.0, - qc0 = 0.0002, - q_crit = 1.6, - mu_rain = 0.5, - rain_n0_factor = 0.1, - v0snow = 20, - tkhmin = 0.4, - tkmmin = 0.4, -/ diff --git a/cases/cosmo-art-nested-test/cosmo_INPUT_PHY.cfg b/cases/cosmo-art-nested-test/cosmo_INPUT_PHY.cfg deleted file mode 100644 index fca57629..00000000 --- a/cases/cosmo-art-nested-test/cosmo_INPUT_PHY.cfg +++ /dev/null @@ -1,46 +0,0 @@ -&PHYCTL - lgsp=.TRUE., - itype_gscp=4, - lrad=.TRUE., - nradcoarse=1, - lradf_avg=.FALSE. - hincrad=0.25, - lforest=.TRUE., - itype_albedo=1, ! geaendert - ltur=.TRUE., - ninctura=1, - lexpcor=.FALSE., - ltmpcor=.FALSE., - lprfcor=.FALSE., - lnonloc=.FALSE., - lcpfluc=.FALSE., - limpltkediff=.TRUE., - itype_turb=3, - imode_turb=1, - itype_tran=2, - imode_tran=1, - itype_wcld=2, - icldm_rad =4, - icldm_turb=2, - icldm_tran=0, - itype_synd=2, - lsoil=.TRUE., - itype_evsl=2, - itype_trvg=2, - lmulti_layer=.TRUE., - lmelt=.TRUE., - lmelt_var=.TRUE., - ke_soil = 7, - czml_soil = 0.005, 0.02, 0.06, 0.18, 0.54, 1.62, 4.86, 14.58, - lconv=.FALSE., - lcape=.FALSE., - lconf_avg=.TRUE., - lconv_inst=.TRUE., - itype_conv=3, - itype_heatcond=2, - nincconv=10, - llake=.FALSE., - lseaice=.FALSE., - lsso=.FALSE., - ltkesso=.FALSE., -/ diff --git a/cases/cosmo-art-nested-test/cosmo_runjob.cfg b/cases/cosmo-art-nested-test/cosmo_runjob.cfg deleted file mode 100644 index fdf63479..00000000 --- a/cases/cosmo-art-nested-test/cosmo_runjob.cfg +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -l -#SBATCH --account={cfg.compute_account} -#SBATCH --job-name="cosmo_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --time={cfg.cosmo_walltime} -#SBATCH --nodes={cfg.cosmo_n_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node=36 -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --output={logfile} -#SBATCH --chdir={cfg.cosmo_work} -#SBATCH --open-mode=append - -export OMP_NUM_THREADS=1 - -module load daint-{cfg.constraint} - -ulimit -s unlimited -ulimit -a - -rm -f YU* -rm -f M_* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - - -srun -u ./cosmoart >> {logfile} 2>&1 -pid=$? - - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo "Executing COSMO failed" >> {logfile}; exit 1; }} - -# check whether COSMO was successful by calculating name of the last -# output file that should have been created - -hoursSim=$(expr {cfg.hstop} % 24) -daysSim=$(expr {cfg.hstop} / 24) # bash does not know floating points, it truncates to integer -hoursSimNice=$(printf "%02d" $hoursSim) -daysSimNice=$(printf "%02d" $daysSim) -lastHourFile="lfff${{daysSimNice}}${{hoursSimNice}}0000.nc" - -[[ ! -f {cfg.cosmo_output}${{lastHourFile}} ]] || {{ echo "COSMO failed" >> {logfile}; exit 1; }} - -# copy log file -cp {logfile} {logfile_finish} diff --git a/cases/cosmo-art-nested-test/int2lm_INPUT.cfg b/cases/cosmo-art-nested-test/int2lm_INPUT.cfg deleted file mode 100644 index ae8682f8..00000000 --- a/cases/cosmo-art-nested-test/int2lm_INPUT.cfg +++ /dev/null @@ -1,196 +0,0 @@ -&CONTRL - ydate_ini='{cfg.inidate_int2lm_yyyymmddhh}', - linitial=.TRUE., lboundaries=.TRUE., - hstart={cfg.hstart_int2lm}, - hstop={cfg.hstop_int2lm}, - hincbound=1.0, - nprocx={cfg.int2lm_np_x}, - nprocy={cfg.int2lm_np_y}, - yinput_model = 'COSMO', - luse_t_skin=.TRUE., - lvertwind_ini=.TRUE., - lvertwind_bd=.TRUE., - lfilter_pp=.true., - llbc_smooth=.true., - lfilter_oro=.true., - ilow_pass_oro=4, - numfilt_oro=1, - ilow_pass_xso=5, - lxso_first=.FALSE., - numfilt_xso=1, - rxso_mask=750.0, - eps_filter=0.1, - norder_filter=5, - l_topo_z=.false., - rfill_valley=0.0, - ifill_valley=7, - lprog_qi=.TRUE., - lprog_qr_qs=.TRUE., - lprog_qg=.FALSE., - itype_w_so_rel=1, - lpost_0006=.TRUE., - lbdclim=.FALSE., - ltime_mean=.TRUE., - luvcor=.TRUE., - lreorder=.FALSE., - lprog_rho_snow=.TRUE., - lmulti_layer_in=.TRUE., - lmulti_layer_lm=.TRUE., - lforest=.true., - llake=.false., - lsso = .false., - lradtopo=.false., - l_smi = .TRUE., - idbg_level= 2, - l_art = .TRUE., - l_art_nested = .TRUE., -/ -&GRID_IN -!COSMO-14 d1EU - startlon_in_tot = -16.08, startlat_in_tot = -9.54, - pollon_in = -170.0, pollat_in = 43.0, - dlon_in = 0.12, dlat_in = 0.12, - ie_in_tot = 192, je_in_tot = 164, ke_in_tot = 60, -! pcontrol_fi=30000., -/ -&LMGRID -!COSMO-2 d2CH - startlon_tot = -3.48, - startlat_tot = -1.74, - pollon = -170.0, - pollat = 43.0, - dlon = 0.02, - dlat = 0.02, - ielm_tot = 220, - jelm_tot = 142, - kelm_tot = 60, - ivctype = 4, - irefatm = 2, - lanalyt_calc_t0p0 = .TRUE., - vcflat = 11357.0, - vcoord_d = 23588.50,22395.93,21304.04, 20307.39, 19399.95, - 18574.03, 17821.88, 17135.64, 16507.79, 15930.60, - 15396.52, 14897.86, 14427.98, 13981.10, 13551.52, - 13133.53, 12721.37, 12312.04, 11900.03, 11485.37, - 11068.19, 10648.54, 10226.48, 9802.09, 9375.43, - 8946.58, 8515.59, 8082.55, 7647.52, 7210.55, - 6771.96, 6332.38, 5896.41, 5468.04, 5050.84, - 4647.96, 4261.91, 3893.26, 3542.15, 3208.52, - 2892.23, 2593.71, 2312.95, 2049.75, 1803.89, - 1575.57, 1364.68, 1170.90, 993.84, 833.44, - 689.53, 561.52, 448.82, 350.95, 267.55, - 197.67, 137.23, 87.33, 48.44, 20.00, 0.00, -/ -&DATABASE -/ -&DATA - ie_ext=1179, je_ext=1014, - ylmext_lfn='{cfg.int2lm_extpar_file}', - ylmext_cat="../input/extpar/", - ylmext_form_read='ncdf', - yinext_lfn='{cfg.meteo_prefix}{cfg.inidate_int2lm_yyyymmddhh}c.nc', - yinext_cat="../input/meteo", - yinext_form_read='ncdf', - yin_cat="../input/meteo", - yinput_type='forecast', - yin_form_read='ncdf', - ylm_cat="../output", - nprocess_ini = 131, nprocess_bd = 132, - ylm_form_write = "ncdf", - ytunit_out = "d", - ytunit_in = "d", - ymode_write = 'w b', - l_ke_in_gds = .TRUE., -/ -&PRICTR - lchkin = .FALSE., - lchkout = .FALSE., -/ -&ARTCONTROL - nart_ds = 4, -/ -&ARTDATASET - startlon_tot=-3.52, - dlon=0.02, - startlat_tot=-1.78, - dlat=0.02, - pollon=-170.0, - pollat=43.0, - ie_tot=224, - je_tot=146, ke_tot=7, - yvertical_axis_type="geometric", - yvertical_method="D", - ylfn_prefix = "emis_", - yvarlist= "ORA2e","KETe","ALDe","HCHOe","CSLe","XYLe","TOLe", - "OLIe","OLTe","OL2e","HC8e","HC5e","HC3e","ETHe", - "SO2e","NOe","NO2e","NH3e","COe","ISOe","MGLYe","ORA1e", - "VSO4Je","VSO4Ie","VP25AIe","VP25AJe","VORGPAIe", - "VORGPAJe","VANTHAe","VSOOTe", - hinc=1.0, - lconst_in_time=.FALSE., - lconserve_mass=.TRUE., - ydirin="../input/emissions/", -/ -&ARTDATASET - startlon_tot=-3.52, - dlon=0.02, - startlat_tot=-1.78, - dlat=0.02, - pollon=-170.0, - pollat=43.0, - ie_tot=224, - je_tot=146, - ke_tot=7, - yvertical_axis_type="geometric", - yvertical_method="D", - ylfn_prefix = "emis_" - yvarlist= "ORA2e","KETe","ALDe","HCHOe","CSLe","XYLe","TOLe", - "OLIe","OLTe","OL2e","HC8e","HC5e","HC3e","ETHe", - "SO2e","NOe","NO2e","NH3e","COe","ISOe","MGLYe","ORA1e", - "VSO4Je","VSO4Ie","VP25AIe","VP25AJe","VORGPAIe", - "VORGPAJe","VANTHAe","VSOOTe", - hinc=1.0, - lconst_in_time=.FALSE., - lconserve_mass=.TRUE., - ydirin="../input/emissions2/", - ycombine_action="A", -/ -&ARTDATASET - startlon_tot =-3.52, - dlon=0.02, - startlat_tot =-1.78, - dlat=0.02, - pollon=-170., - pollat=43., - ie_tot=224, - je_tot=146, - ke_tot=1, - ylfn_prefix = 'landuse', - yvarlist="PLUSE1","PLUSE2","PLUSE3","PLUSE4","PLUSE5", - "PLUSE6","PLUSE7","PLUSE8","PLUSE9","PLUSE10", - "PLUSE11","PLUSE12","PLUSE13","PLUSE14","PLUSE15", - "PLUSE16","PLUSE17","PLUSE18","PLUSE19","PLUSE20", - "PLUSE21","PLUSE22","PLUSE23", - lconst_in_time=.TRUE., - ydirin="../input/extpar/", - yinterp_type= 'N', - lconserve_mass = .FALSE., -/ -&ARTDATASET - startlon_tot =-14.9770802, - dlon=0.0500069454, - startlat_tot =30.0333426, - dlat=0.0500138927, - ie_tot=1201, - je_tot=901, - ke_tot=1, - ylfn_prefix = "pft", - yvarlist="PFT1","PFT2","PFT3","PFT4","PFT5", - "PFT6","PFT7","PFT8","PFT9","PFT10", - "PFT11","PFT12","PFT13","PFT14","PFT15", - lconst_in_time=.TRUE., - ydirin="../input/extpar/", - yinterp_type= 'N', - lconserve_mass = .FALSE., -/ - diff --git a/cases/cosmo-art-nested-test/int2lm_runjob.cfg b/cases/cosmo-art-nested-test/int2lm_runjob.cfg deleted file mode 100644 index c4d5a0d0..00000000 --- a/cases/cosmo-art-nested-test/int2lm_runjob.cfg +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/bash -l -#SBATCH --job-name=int2lm -#SBATCH --time={cfg.int2lm_walltime} -#SBATCH --nodes={cfg.int2lm_nodes} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.int2lm_ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --account={cfg.compute_account} -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.int2lm_work} - - -module load daint-{cfg.constraint} -module load cray-netcdf - -ulimit -s unlimited -ulimit -a - -export OMP_NUM_THREADS=1 -export api_dir={cfg.int2lm_work}/libgrib_api/v1.20.0.2/cray -export GRIB_DEFINITION_PATH=$api_dir/share/grib_api/definitions:$api_dir/cosmo_definitions/definitions -export GRIB_SAMPLES_PATH=$api_dir/cosmo_definitions/samples -export HDF5_DISABLE_VERSION_CHECK=1 - -rm -f YU* -rm -f diag* - -echo "=====================================================" -echo "============== JOB OUTPUT BEGINS ====================" -echo "============== StartTime: `date +%s` s" -echo "============== StartTime: `date`" -echo "=====================================================" - -srun -u -n {cfg.int2lm_np_tot} ./int2lm >> {logfile} 2>&1 -pid=$? - -echo "=====================================================" -echo "============== JOB OUTPUT ENDS ====================" -echo "============== EndTime: `date +%s` s" -echo "============== EndTime: `date` s" -echo "=====================================================" - -[[ $pid == 0 ]] || {{ echo \"Executing INT2LM MPI command failed\" >> job.out; exit 1; }} - -rm -f diag* - -# check whether INT2LM was successful by checking for presence of last -# meteofile that should have been processed -firstsecs=$(date -u --date "{ini_day} {ini_hour}" +%s) - -let lastsecs="firstsecs+{cfg.hstop_int2lm}*3600" -lastyyyymmddhh=$(date -u --date "1970-01-01 UTC +${{lastsecs}} sec" +%Y%m%d%H) -lastHourFile="lbfd${{lastyyyymmddhh}}.nc" - -echo last file processed is $lastHourFile >> {logfile} - -[[ ! -f ../output/${{lastHourFile}} ]] && {{ echo "INT2LM failed" >> {logfile}; exit 1; }} - -cp {logfile} {logfile_finish} diff --git a/cases/cosmo-ghg-11km-test/config.py b/cases/cosmo-ghg-11km-test/config.py index 938625e6..0e59d148 100644 --- a/cases/cosmo-ghg-11km-test/config.py +++ b/cases/cosmo-ghg-11km-test/config.py @@ -13,12 +13,12 @@ else: compute_account = os.popen("id -gn").read().splitlines()[0] compute_host = 'daint' -compute_queue = 'debug' # 'normal' +compute_queue = 'normal' constraint = 'gpu' # 'mc' -target = 'cosmo-ghg' +model = 'cosmo-ghg' restart_step = 12 # hours -subtarget = 'spinup' +variant = 'spinup' spinup = 6 if constraint == 'gpu': @@ -90,13 +90,13 @@ # OAE ------------------------------------------------------------------------ # Online anthropogenic emissions -oae_dir = os.path.join(input_root, 'oae') -oae_gridded_emissions_nc = 'emissions.nc' -oae_vertical_profiles_nc = 'vertical_profiles.nc' -oae_hourofday_nc = 'hourofday.nc' -oae_hourofyear_nc = 'hourofyear.nc' -oae_dayofweek_nc = 'dayofweek.nc' -oae_monthofyear_nc = 'monthofyear.nc' +oem_dir = os.path.join(input_root, 'oem') +oem_gridded_emissions_nc = 'emissions.nc' +oem_vertical_profiles_nc = 'vertical_profiles.nc' +oem_hourofday_nc = 'hourofday.nc' +oem_hourofyear_nc = 'hourofyear.nc' +oem_dayofweek_nc = 'dayofweek.nc' +oem_monthofyear_nc = 'monthofyear.nc' # BIOFLUXES ------------------------------------------------------------------ # VPRM biogenic fluxes for offline VPRM @@ -125,11 +125,8 @@ # Walltimes if compute_queue == "normal": int2lm_walltime = "01:00:00" -elif compute_queue == "debug": - int2lm_walltime = "00:30:00" else: - logging.error("Unset queue name: %s" % compute_queue) - sys.exit(1) + int2lm_walltime = "00:30:00" # Domain decomposition int2lm_nodes = 2 @@ -160,13 +157,10 @@ cosmo_walltime = "00:30:00" cosmo_np_x = 6 cosmo_np_y = 4 -elif compute_queue == "debug": +else: cosmo_walltime = "00:30:00" cosmo_np_x = 4 cosmo_np_y = 3 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) # Total node count cosmo_np_io = 0 diff --git a/cases/cosmo-ghg-11km-test/cosmo_INPUT_GHG.cfg b/cases/cosmo-ghg-11km-test/cosmo_INPUT_GHG.cfg index b413b89c..505ba793 100644 --- a/cases/cosmo-ghg-11km-test/cosmo_INPUT_GHG.cfg +++ b/cases/cosmo-ghg-11km-test/cosmo_INPUT_GHG.cfg @@ -2,11 +2,11 @@ in_tracers = {cfg.in_tracers}, tracer_start = {cfg.tracer_start}, iemiss_interp = 1, - gridded_emissions_nc = '../input/oae/{cfg.oae_gridded_emissions_nc}', - vertical_profile_nc = '../input/oae/{cfg.oae_vertical_profiles_nc}', - hour_of_day_nc = '../input/oae/{cfg.oae_hourofday_nc}', - day_of_week_nc = '../input/oae/{cfg.oae_dayofweek_nc}', - month_of_year_nc = '../input/oae/{cfg.oae_monthofyear_nc}', + gridded_emissions_nc = '../input/oem/{cfg.oem_gridded_emissions_nc}', + vertical_profile_nc = '../input/oem/{cfg.oem_vertical_profiles_nc}', + hour_of_day_nc = '../input/oem/{cfg.oem_hourofday_nc}', + day_of_week_nc = '../input/oem/{cfg.oem_dayofweek_nc}', + month_of_year_nc = '../input/oem/{cfg.oem_monthofyear_nc}', modis_reflectances_nc = '../input/vprm/modis.nc', veg_class_frac_nc = '../input/vprm/vegetation.nc', octe_maps_nc = '../input/octe/maps.nc', diff --git a/cases/icon-art-global-test/config.py b/cases/icon-art-global-test/config.py new file mode 100644 index 00000000..5c7e98e7 --- /dev/null +++ b/cases/icon-art-global-test/config.py @@ -0,0 +1,108 @@ +import os +""" +Configuration file for the 'icon-art-global' case with ICON-ART +""" + +# GENERAL SETTINGS =========================================================== +user = os.environ['USER'] +if user == 'jenkins': + compute_account = 'g110' +elif os.path.exists(os.environ['HOME'] + '/.acct'): + with open(os.environ['HOME'] + '/.acct', 'r') as file: + compute_account = file.read().rstrip() +else: + compute_account = os.popen("id -gn").read().splitlines()[0] +compute_host = 'daint' +compute_queue = 'normal' +constraint = 'gpu' # 'mc' + +model = 'icon-art-global' +restart_step = 24 # hours + +# Number of tasks per node +ntasks_per_node = 36 if constraint == 'mc' else 12 + +# Case name = pathname in cases/ +casename = os.path.basename(os.path.dirname(os.path.realpath(__file__))) + +# Root directory of the sourcecode of the chain (where run_chain.py is) +chain_src_dir = os.getcwd() + +# Root directory of the working space of the chain +work_root = os.path.join(chain_src_dir, 'work') + +# Case directory +case_dir = os.path.join(chain_src_dir, 'cases', casename) + +# ----------------------------------------------------------- +# SIMULATION +# ----------------------------------------------------------- + +# Executable +icon_bin = os.path.join(chain_src_dir, 'src', 'icon-art', 'bin', 'icon') + +# eccodes +eccodes_dir = os.path.join(chain_src_dir, 'input', 'eccodes_definitions') + +# Paths for namelists and slurm runscript templates +# icon_runjob = os.path.join(case_dir, 'icon_runjob_withoutart.cfg') +icon_runjob = os.path.join(case_dir, 'icon_runjob.cfg') +icon_era5_inijob = os.path.join(case_dir, 'icon_era5_inicond.sh') +icon_era5_nudgingjob = os.path.join(case_dir, 'icon_era5_nudging.sh') +icon_species_inijob = os.path.join(case_dir, 'icon_species_inicond.sh') +icon_species_nudgingjob = os.path.join(case_dir, 'icon_species_nudging.sh') + +# Number of hours between two output data +output_writing_step = 12 # TO MODIFY + +# Initial conditios +era5_inicond = False # TO MODIFY +species_inicond = True +species2restart = ['TROH'] + +# Nudging (meteorological and tracers) +era5_global_nudging = False +species_global_nudging = False +species2nudge = [] +nudging_step = 12 + +# Walltimes and domain decomposition +if compute_queue == "normal": + icon_walltime = "00:30:00" + icon_np_tot = 2 +elif compute_queue == "debug": + icon_walltime = "00:30:00" + icon_np_tot = 2 + +# ----------------------------------------------------------- +# INPUT DATA +# ----------------------------------------------------------- +# ART settings----------------------------------------------- +input_root = os.path.join(chain_src_dir, 'input', model) +art_input_folder = os.path.join(input_root, 'art') + +input_files = { + 'inicond_filename': ['era2icon_R2B03_2022060200.nc', 'icbc'], + 'map_file_nudging': ['map_file.nudging', 'icbc'], + 'dynamics_grid_filename': ["iconR2B03-DOM01.nc", 'grid'], + 'radiation_grid_filename': ["iconR2B03-DOM01.nc", 'grid'], + 'extpar_filename': ["extpar_iconR2B03-DOM01.nc", 'grid'], + 'cldopt_filename': ['ECHAM6_CldOptProps.nc', 'rad'], + 'lrtm_filename': ['rrtmg_lw.nc', 'rad'], + 'oh_molec_filename': ['oh_gcp2022_icongrid.nc', 'chemistry'], + 'pntSrc_xml_filename': ['point-sources.xml', 'config'], + 'chemtracer_xml_filename': ['tracers.xml', 'config'], +} + +# ----------------------------------------------------------- +# Additional settings derived from constants +# ----------------------------------------------------------- + +# Nudge type (global or nothing) +nudge_type = 2 if era5_global_nudging else 0 + +# Time step for global nudging in seconds +nudging_step_seconds = nudging_step * 3600 + +# Prescribed initial conditions for CH4, CO and/or OH +iart_init_gas = 4 if species_inicond else 0 diff --git a/cases/icon-art-global/icon_era5_inicond.sh b/cases/icon-art-global-test/icon_era5_inicond.sh similarity index 100% rename from cases/icon-art-global/icon_era5_inicond.sh rename to cases/icon-art-global-test/icon_era5_inicond.sh diff --git a/cases/icon-art-global/icon_era5_nudging.sh b/cases/icon-art-global-test/icon_era5_nudging.sh similarity index 100% rename from cases/icon-art-global/icon_era5_nudging.sh rename to cases/icon-art-global-test/icon_era5_nudging.sh diff --git a/cases/icon-art-global/icon_runjob.cfg b/cases/icon-art-global-test/icon_runjob.cfg similarity index 97% rename from cases/icon-art-global/icon_runjob.cfg rename to cases/icon-art-global-test/icon_runjob.cfg index 69b725b7..0604e023 100644 --- a/cases/icon-art-global/icon_runjob.cfg +++ b/cases/icon-art-global-test/icon_runjob.cfg @@ -13,23 +13,24 @@ #SBATCH --open-mode=append #SBATCH --chdir={cfg.icon_work} -# -- OpenMP environment variables +# OpenMP environment variables +# ---------------------------- export OMP_NUM_THREADS=1 export ICON_THREADS=1 export OMP_SCHEDULE=static,12 export OMP_DYNAMIC="false" export OMP_STACKSIZE=200M +set -x # -- ECCODES path -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2 -export ECCODES_DEFINITION_PATH=$ECCODES_DEFINITION_PATH:/store/empa/em05/easybuild.backup/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions -export ECCODES_DEFINITION_PATH=$ECCODES_DEFINITION_PATH:/project/g110/spack-install/daint/eccodes/2.19.0/pgi/6skdmw5lsn6mjv4esxkyalf6xogllshi/share/eccodes/definitions/ - -set -x +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions -# -- Set time step -dtime=900 +# ---------------------------------------------------------------------------- +# Link radiation input files +# ---------------------------------------------------------------------------- +ln -sf {cfg.art_input_folder}/* . +ln -sf {cfg.art_input_folder}/* . # ---------------------------------------------------------------------------- # Create ICON master namelist @@ -106,7 +107,7 @@ cat > NAMELIST_NWP << EOF ! run_nml: general switches --------------------------------------------------- &run_nml - dtime = ${{dtime}} ! timestep in seconds + dtime = 900 ! timestep in seconds iforcing = 3 ! forcing of dynamics and transport by parameterized processes lart = .TRUE. ! main switch for ART ldynamics = .TRUE. ! compute adiabatic dynamic tendencies @@ -336,7 +337,7 @@ latbc_boundary_grid = ' ' cart_chemtracer_xml = '{cfg.chemtracer_xml_filename_scratch}' ! path to xml file for chemical tracers cart_pntSrc_xml = '{cfg.pntSrc_xml_filename_scratch}' ! path to xml file for point sources - cart_input_folder = '{cfg.input_root_art}' ! absolute Path to ART source code + cart_input_folder = '{cfg.art_input_folder}' ! absolute Path to ART source code / ! output_nml: specifies an output stream -------------------------------------- @@ -399,4 +400,4 @@ EOF # reg_lon_def = -179.,2,179 # reg_lat_def = 90.,-1,-90. # ml_varlist = 'z_ifc','z_mc','pres','pres_sfc','qc','rh','rho','temp','u','v','w','group:ART_CHEMISTRY', -# / \ No newline at end of file +# / diff --git a/cases/icon-art-global/icon_species_inicond.sh b/cases/icon-art-global-test/icon_species_inicond.sh similarity index 100% rename from cases/icon-art-global/icon_species_inicond.sh rename to cases/icon-art-global-test/icon_species_inicond.sh diff --git a/cases/icon-art-global/icon_species_nudging.sh b/cases/icon-art-global-test/icon_species_nudging.sh similarity index 100% rename from cases/icon-art-global/icon_species_nudging.sh rename to cases/icon-art-global-test/icon_species_nudging.sh diff --git a/cases/icon-art-global/mypartab b/cases/icon-art-global-test/mypartab similarity index 100% rename from cases/icon-art-global/mypartab rename to cases/icon-art-global-test/mypartab diff --git a/cases/icon-art-global/config.py b/cases/icon-art-global/config.py deleted file mode 100644 index 90f0b63e..00000000 --- a/cases/icon-art-global/config.py +++ /dev/null @@ -1,150 +0,0 @@ -import os -import logging -import sys -""" -Configuration file for the 'icon-art-global' case with ICON-ART -""" - -# ----------------------------------------------------------- -# GENERAL SETTINGS -# ----------------------------------------------------------- - -user = os.environ['USER'] -compute_host = 'daint' -compute_queue = 'debug' # 'normal' / 'debug' -constraint = 'mc' # 'mc' / 'gpu' -if os.path.exists(os.environ['HOME'] + '/.acct'): - with open(os.environ['HOME'] + '/.acct', 'r') as file: - compute_account = file.read().rstrip() -else: - compute_account = os.popen("id -gn").read().splitlines()[0] - -# -- Model to run -target = 'icon-art-global' - -# -- Number of tasks per node -ntasks_per_node = 36 if constraint == 'mc' else 12 - -# -- case name = pathname in cases/ -casename = os.path.basename(os.path.dirname(os.path.realpath(__file__))) - -# -- Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() - -# -- Case directory -case_dir = os.path.join(chain_src_dir, 'cases', casename) - -# ----------------------------------------------------------- -# -- SIMULATION -# ----------------------------------------------------------- - -# -- Root directory of the working space of the chain -work_root = os.path.join(chain_src_dir, 'work') - -# -- Executable -# icon_bin = os.path.join('/scratch/snx3000/jthanwer/spack-install/daint/icon/c2sm-master/gcc/qcndg6qwq6e5gfutwoycqmwf2m4lvg7g/', 'bin', 'icon') # -- eccodes, ocean, noart -# icon_bin = os.path.join('/scratch/snx3000/jthanwer/spack-install/daint/icon/c2sm-master/gcc/x6pisrz7umszlrpnazse3cuosdxt45kt/', 'bin', 'icon') # -- art -# icon_bin = os.path.join('/scratch/snx3000/jthanwer/icon-online-traj/cpu/', 'bin', 'icon') # -- online-traj, cpu+art, dev-build -icon_bin = os.path.join('/scratch/snx3000/jthanwer/icon-proc-chain/cpu/', - 'bin', 'icon') # - -# -- Paths for namelists and slurm runscript templates -# icon_runjob = os.path.join(case_dir, 'icon_runjob_withoutart.cfg') -icon_runjob = os.path.join(case_dir, 'icon_runjob.cfg') -icon_era5_inijob = os.path.join(case_dir, 'icon_era5_inicond.sh') -icon_era5_nudgingjob = os.path.join(case_dir, 'icon_era5_nudging.sh') -icon_species_inijob = os.path.join(case_dir, 'icon_species_inicond.sh') -icon_species_nudgingjob = os.path.join(case_dir, 'icon_species_nudging.sh') - -# -- Number of hours simulated by one job / directory -# restart_step = '1MS' # -- hours or Pandas frequency -restart_step = 24 # -- hours or Pandas frequency - -# -- Number of hours between two output data -output_writing_step = 12 # -- TO MODIFY - -# -- Initial conditios -era5_inicond = False # -- TO MODIFY -species_inicond = True -species2restart = ['TROH'] - -# -- Nudging (meteorological and tracers) -era5_global_nudging = False -species_global_nudging = False -species2nudge = [] -nudging_step = 12 - -# -- Walltimes and domain decomposition -if compute_queue == "normal": - icon_walltime = "00:30:00" - icon_np_tot = 2 - -elif compute_queue == "debug": - icon_walltime = "00:30:00" - icon_np_tot = 2 - -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) - -# ----------------------------------------------------------- -# -- INPUT DATA -# ----------------------------------------------------------- - -input_root = '/scratch/snx3000/jthanwer/DATA/ICON_INPUT/' -input_root_icbc = os.path.join(input_root, 'ICBC') -input_root_grid = os.path.join(input_root, 'GRIDS') -input_root_rad = os.path.join(input_root, 'RAD') -input_root_oem = os.path.join(input_root, 'OEM', 'SF6') -input_root_chemistry = os.path.join(input_root, 'CHEMISTRY', - 'OH_GCP2022_ORIGINAL') -input_root_tracers = os.path.join(input_root, 'XML/examples') -input_root_configs = os.path.join(input_root, 'CONFIGS') -input_root_art = os.path.join(input_root, 'ART') - -# -- Initial conditions and boundary conditions -inicond_filename = '/scratch/snx3000/jthanwer/DATA/ICON_INPUT/ICBC/era2icon_R2B03_2022060200.nc' - -# -- Grid -dynamics_grid_filename = os.path.join(input_root_grid, "iconR2B03-DOM01.nc") -radiation_grid_filename = os.path.join(input_root_grid, "iconR2B03-DOM01.nc") -extpar_filename = os.path.join(input_root_grid, "extpar_iconR2B03-DOM01.nc") - -# -- Radiation -cldopt_filename = os.path.join(input_root_rad, 'ECHAM6_CldOptProps.nc') -lrtm_filename = os.path.join(input_root_rad, 'rrtmg_lw.nc') - -# -- OEM -# oem_emis_filename = os.path.join(input_root_oem, 'OEM_SF6_{year}.nc') -oem_vertprof_filename = os.path.join(input_root_oem, 'vertical_profiles.nc') -oem_hourofday_filename = os.path.join(input_root_oem, 'hourofday.nc') -oem_dayofweek_filename = os.path.join(input_root_oem, 'dayofweek.nc') -oem_monthofyear_filename = os.path.join(input_root_oem, 'monthofyear.nc') - -# -- Chemistry (OH) -oh_molec_filename = os.path.join(input_root_chemistry, - 'oh_gcp2022_icongrid.nc') # -- TO MODIFY - -# -- ART -pntSrc_xml_filename = os.path.join(input_root_configs, - 'CONFIG2/point-sources.xml') # -- TO MODIFY -boundcond_xml_filename = os.path.join(input_root_tracers, - 'boundary-conditions.xml') -chemtracer_xml_filename = os.path.join(input_root_configs, - 'CONFIG2/tracers.xml') # -- TO MODIFY - -# -- Nudging -map_file_nudging = os.path.join(input_root_icbc, 'map_file.nudging') - -# ----------------------------------------------------------- -# -- Additional settings derived from constants -# ----------------------------------------------------------- - -# -- Nudge type (global or nothing) -nudge_type = 2 if era5_global_nudging else 0 - -# -- Time step for global nudging in seconds -nudging_step_seconds = nudging_step * 3600 - -# -- Prescribed initial conditions for CH4, CO and/or OH -iart_init_gas = 4 if species_inicond else 0 diff --git a/cases/icon-art-oem-ensembles-test/config.py b/cases/icon-art-oem-ensembles-test/config.py deleted file mode 100644 index bef5a54d..00000000 --- a/cases/icon-art-oem-ensembles-test/config.py +++ /dev/null @@ -1,170 +0,0 @@ -import os -""" -Configuration file for the 'icon-art-oem-ensembles-test' case with ICON-ART -""" - -# GENERAL SETTINGS =========================================================== -user = os.environ['USER'] -if os.path.exists(os.environ['HOME'] + '/.acct'): - with open(os.environ['HOME'] + '/.acct', 'r') as file: - compute_account = file.read().rstrip() -else: - compute_account = os.popen("id -gn").read().splitlines()[0] -compute_host = 'daint' -compute_queue = 'debug' # 'normal' / 'debug' -constraint = 'mc' # 'mc' / 'gpu' - -target = 'icon-art-oem' -restart_step = 24 # hours - -if constraint == 'gpu': - ntasks_per_node = 12 -elif constraint == 'mc': - ntasks_per_node = 36 - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() - -# Root directory of the working space of the chain -work_root = os.path.join(chain_src_dir, 'work') - -# Directory where executables are stored -exe_dir = "/store/empa/em05/executables" - -# Case directory -case_dir = os.path.join(chain_src_dir, 'cases', casename) - -# PREPARE_DATA --------------------------------------------------------------- -input_root = '/store/empa/em05/input_iconart_processing_chain_example/' - -input_root_meteo = '/store/empa/em05/input_iconart_processing_chain_example/meteo' -meteo_prefix = 'ifs_' -meteo_nameformat = meteo_prefix + '%Y%m%d%H' -meteo_suffix = '.grb' -meteo_inc = 3 - -input_root_chem = '/store/empa/em05/input_iconart_processing_chain_example/chem' - -input_root_icbc = os.path.join(input_root, 'icbc') -chem_prefix = 'cams_gqpe_' -chem_nameformat = chem_prefix + '%Y%m%d_%H' -chem_suffix = '.grb' -chem_inc = 3 - -icontools_runjobs = [ - 'icontools_remap_ic_runjob.cfg', - 'icontools_remap_00_lbc_runjob.cfg', - 'icontools_remap_lbc_rest_runjob.cfg', - 'icontools_remap_ic_chem_runjob.cfg', - 'icontools_remap_lbc_chem_runjob.cfg', -] - -# Icontools executables -#icontools_dir = '/project/s903/mjaehn/spack-install/daint/icontools/master/cce/ldcbgsjjzq2p73xbei7ws4wce5ivzxer/bin/' -icontools_dir = '/scratch/snx3000/msteiner/spack-stages/daint/spack-stage-icontools-master-t524rnfa5sfyn4rbvarypyzwae4jg46d/spack-src/icontools' -iconremap_bin = os.path.join(icontools_dir, "iconremap") -iconsub_bin = os.path.join(icontools_dir, "iconsub") - -# Input data for runscript---------------------------------------------------- -# Grid -input_root_grid = os.path.join(input_root, 'grids') -radiation_grid_filename = os.path.join(input_root_grid, - "testcase_DOM01.parent.nc") -dynamics_grid_filename = os.path.join(input_root_grid, "testcase_DOM01.nc") -map_file_latbc = os.path.join(input_root_grid, "map_file.latbc") -extpar_filename = os.path.join( - input_root_grid, "external_parameter_icon_testcase_DOM01_tiles.nc") -input_root_rad = os.path.join(input_root, 'rad') -cldopt_filename = os.path.join(input_root_rad, 'rrtm_cldopt.nc') -lrtm_filename = os.path.join(input_root_rad, 'rrtmg_lw.nc') - -input_root_mapping = os.path.join(input_root, 'mapping') -map_file_ana = os.path.join(input_root_mapping, "map_file.ana") - -# File names ----------------------------------------------------------------- -latbc_filename = "ifs__lbc.nc" -inidata_prefix = "ifs_init_" -inidata_nameformat = inidata_prefix + '%Y%m%d%H' -inidata_filename_suffix = ".nc" - -output_filename = "icon-art-test" -filename_format = "_DOM_" - -# ART settings---------------------------------------------------------------- -input_root_tracers = os.path.join(input_root, 'XML') -chemtracer_xml_filename = os.path.join(input_root_tracers, - 'tracers_ensemble.xml') -art_input_folder = os.path.join(input_root, 'ART') - -# OAE ------------------------------------------------------------------------ -# Online anthropogenic emissions -oae_dir = os.path.join(input_root, 'OEM') -oae_gridded_emissions_nc = 'tno_3cat.nc' -oae_vertical_profiles_nc = 'vertical_profiles.nc' -oae_hourofday_nc = 'hourofday.nc' -oae_dayofweek_nc = 'dayofweek.nc' -oae_monthofyear_nc = 'monthofyear.nc' -#oae_hourofyear_nc = 'hourofyear.nc' -oae_ens_reg_nc = 'regions_testcase.nc' -oae_ens_lambda_nc = 'lambdas_testcase.nc' - -# SIMULATION ================================================================= -# ICON ----------------------------------------------------------------------- -# Executable -icon_bin = os.path.join(exe_dir, "icon-art-oem-nudging_20211011") - -# Namelists and slurm runscript templates -icon_runjob = os.path.join(case_dir, 'icon_runjob.cfg') -icon_namelist_master = os.path.join(case_dir, 'icon_master.namelist.cfg') -icon_namelist_nwp = os.path.join(case_dir, 'icon_NAMELIST_NWP.cfg') - -# Walltimes and domain decomposition -if compute_queue == "normal": - icon_walltime = "00:30:00" - icon_np_tot = 16 -elif compute_queue == "debug": - icon_walltime = "00:30:00" - icon_np_tot = 10 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) - -# POST-PROCESSING ============================================================ -# REDUCE_OUTPUT -------------------------------------------------------------- -convert_gas = True -output_levels = 20 - -# POST_COSMO ----------------------------------------------------------------- -# Root directory where the output of the chain is copied to -output_root = os.path.join(chain_src_dir, "output", casename) - -# VERIFY_CHAIN --------------------------------------------------------------- -reference_dir = os.path.join(input_root, "reference_output") - -# If the output file that gets compared to the reference is not at the location -# that post_icon copied it to, give the path to it here. Else leave it 'None' -#output_dir = None -output_dir = os.path.join(work_root, casename, '2018010100_0_24', 'icon', - 'output') - -# variables_to_check is a dict() with a tuple() of filenames as key and a list -# of variables-names as value. The tuple consists of the filenames of the two -# files to check, the list contains the variable-names that are compared. -# The verify_chain job will look for the files in the reference_dir (first tuple -# element) and the ouput_dir (second tuple element) -values_to_check = { - ("icon-oem-pgi-20.1.1-cpu-20210215-NWP_LAM_DOM01_01000000.nc", "NWP_LAM_DOM01_01000000.nc"): - [ - 'temp', - 'pres', - 'u', - 'v', - 'w', - 'OEM_tracer_1', - 'OEM_tracer_2', - ] -} diff --git a/cases/icon-art-oem-ensembles-test/icon_runjob.cfg b/cases/icon-art-oem-ensembles-test/icon_runjob.cfg deleted file mode 100755 index 967589ed..00000000 --- a/cases/icon-art-oem-ensembles-test/icon_runjob.cfg +++ /dev/null @@ -1,379 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --time={cfg.icon_walltime} -#SBATCH --nodes={cfg.icon_np_tot} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --hint=nomultithread -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.icon_work} - -# OpenMP environment variables -# ---------------------------- -export OMP_NUM_THREADS=1 -export ICON_THREADS=1 -export OMP_SCHEDULE=static,12 -export OMP_DYNAMIC="false" -export OMP_STACKSIZE=200M -# -# MPI variables -# ------------- -no_of_nodes={cfg.icon_np_tot} -mpi_procs_pernode={cfg.ntasks_per_node} -((mpi_total_procs=no_of_nodes * mpi_procs_pernode)) -# -# blocking length -# --------------- -nproma=16 - -set -x - -export ECCODES_DEFINITION_PATH=/users/msteiner/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-19.10/share/eccodes/definitions - -# ---------------------------------------------------------------------------- -# Link radiation input files -# ---------------------------------------------------------------------------- -ln -sf {cfg.art_input_folder}/runctrl_examples/photo_ctrl/* . -ln -sf {cfg.art_input_folder}/runctrl_examples/init_ctrl/* . - -# ---------------------------------------------------------------------------- -# create ICON master namelist -# ---------------------------------------------------------------------------- - -cat > icon_master.namelist << EOF -! master_nml: ---------------------------------------------------------------- -&master_nml - lrestart = {cfg.lrestart} ! .TRUE.=current experiment is resumed -/ - -! master_model_nml: repeated for each model ---------------------------------- -&master_model_nml - model_type = 1 ! identifies which component to run (atmosphere,ocean,...) - model_name = "ATMO" ! character string for naming this component. - model_namelist_filename = "NAMELIST_NWP" ! file name containing the model namelists - model_min_rank = 1 ! start MPI rank for this model - model_max_rank = 65536 ! end MPI rank for this model - model_inc_rank = 1 ! stride of MPI ranks -/ - -! time_nml: specification of date and time------------------------------------ -&time_nml - ini_datetime_string = "{cfg.ini_datetime_string}" ! initial date and time of the simulation - end_datetime_string = "{cfg.end_datetime_string}" ! end date and time of the simulation 10T00 -/ -EOF - -# ---------------------------------------------------------------------- -# model namelists -# ---------------------------------------------------------------------- - -cat > NAMELIST_NWP << EOF -! parallel_nml: MPI parallelization ------------------------------------------- -¶llel_nml - nproma = 128 ! loop chunk length - p_test_run = .FALSE. ! .TRUE. means verification run for MPI parallelization - num_io_procs = 1 ! number of I/O processors - num_restart_procs = 0 ! number of restart processors - num_prefetch_proc = 1 ! number of processors for LBC prefetching - iorder_sendrecv = 3 ! sequence of MPI send/receive calls -/ - - -! run_nml: general switches --------------------------------------------------- -&run_nml - ltestcase = .FALSE. ! real case run - num_lev = 60 ! number of full levels (atm.) for each domain - lvert_nest = .FALSE. ! no vertical nesting - dtime = 60. ! timestep in seconds - ldynamics = .TRUE. ! compute adiabatic dynamic tendencies - ltransport = .TRUE. ! compute large-scale tracer transport - ntracer = 0 ! number of advected tracers - iforcing = 3 ! forcing of dynamics and transport by parameterized processes - msg_level = 7 ! detailed report during integration - ltimer = .TRUE. ! timer for monitoring the runtime of specific routines - timers_level = 10 ! performance timer granularity - check_uuid_gracefully = .TRUE. ! give only warnings for non-matching uuids - output = "nml" ! main switch for enabling/disabling components of the model output - lart = .TRUE. ! main switch for ART - debug_check_level = 10 -/ - -! art_nml: Aerosols and Reactive Trace gases extension------------------------------------------------- -&art_nml - lart_chem = .TRUE. ! enables chemistry - lart_pntSrc = .FALSE. ! enables point sources - lart_aerosol = .FALSE. ! main switch for the treatment of atmospheric aerosol - lart_chemtracer = .TRUE. ! main switch for the treatment of chemical tracer - lart_diag_out = .TRUE. ! If this switch is set to .TRUE., diagnostic - ! ... output elds are available. Set it to - ! ... .FALSE. when facing memory problems. - iart_init_gas = 4 - cart_cheminit_file = '{inidata_filename}' - cart_cheminit_type = 'EMAC' - cart_cheminit_coord = '{inidata_filename}' - iart_seasalt = 0 ! enable seasalt - cart_chemtracer_xml = '{cfg.chemtracer_xml_filename_scratch}' ! path to xml file for passive tracers - cart_input_folder = '{cfg.art_input_folder}' ! absolute Path to ART source code -/ - -! oem_nml: online emission module --------------------------------------------- -&oemctrl_nml - gridded_emissions_nc = '{cfg.oae_gridded_emissions_nc_scratch}' - vertical_profile_nc = '{cfg.oae_vertical_profiles_nc_scratch}' - hour_of_day_nc = '{cfg.oae_hourofday_nc_scratch}' - day_of_week_nc = '{cfg.oae_dayofweek_nc_scratch}' - month_of_year_nc = '{cfg.oae_monthofyear_nc_scratch}' - hour_of_year_nc = '{cfg.oae_hourofyear_nc_scratch}' - ens_reg_nc = '{cfg.oae_ens_reg_nc_scratch}' - ens_lambda_nc = '{cfg.oae_ens_lambda_nc_scratch}' -/ - -! diffusion_nml: horizontal (numerical) diffusion ---------------------------- -&diffusion_nml - lhdiff_vn = .TRUE. ! diffusion on the horizontal wind field - lhdiff_temp = .TRUE. ! diffusion on the temperature field - lhdiff_w = .TRUE. ! diffusion on the vertical wind field - hdiff_order = 5 ! order of nabla operator for diffusion - itype_vn_diffu = 1 ! reconstruction method used for Smagorinsky diffusion - itype_t_diffu = 2 ! discretization of temperature diffusion - hdiff_efdt_ratio = 24.0 ! ratio of e-folding time to time step - hdiff_smag_fac = 0.025 ! scaling factor for Smagorinsky diffusion -/ - -! dynamics_nml: dynamical core ----------------------------------------------- -&dynamics_nml - iequations = 3 ! type of equations and prognostic variables - idiv_method = 1 ! method for divergence computation - divavg_cntrwgt = 0.50 ! weight of central cell for divergence averaging - lcoriolis = .TRUE. ! Coriolis force -/ - -! extpar_nml: external data -------------------------------------------------- -&extpar_nml - itopo = 1 ! topography (0:analytical) - extpar_filename = '{cfg.extpar_filename_scratch}' ! filename of external parameter input file - n_iter_smooth_topo = 1,1 ! iterations of topography smoother - heightdiff_threshold = 3000. ! height difference between neighb. grid points - hgtdiff_max_smooth_topo = 750.,750. ! see Namelist doc - heightdiff_threshold = 2250.,1500. -/ - -! initicon_nml: specify read-in of initial state ------------------------------ -&initicon_nml - init_mode = 2 ! 7: start from DWD fg with subsequent vertical remapping - lread_ana = .FALSE. ! no analysis data will be read - ifs2icon_filename = "{inidata_filename}" ! initial data filename - ana_varnames_map_file = "{cfg.map_file_ana_scratch}" ! dictionary mapping internal names onto GRIB2 shortNames - ltile_coldstart = .TRUE. ! coldstart for surface tiles - ltile_init = .FALSE. ! set it to .TRUE. if FG data originate from run without tiles -/ - -! grid_nml: horizontal grid -------------------------------------------------- -&grid_nml - dynamics_grid_filename = "{cfg.dynamics_grid_filename_scratch}" ! array of the grid filenames for the dycore - radiation_grid_filename = "{cfg.radiation_grid_filename_scratch}" ! array of the grid filenames for the radiation model - dynamics_parent_grid_id = 0 ! array of the indexes of the parent grid filenames - lredgrid_phys = .TRUE. ! .true.=radiation is calculated on a reduced grid - lfeedback = .TRUE. ! specifies if feedback to parent grid is performed - l_limited_area = .TRUE. ! .TRUE. performs limited area run - ifeedback_type = 2 ! feedback type (incremental/relaxation-based) - start_time = 0. ! Time when a nested domain starts to be active [s] -/ - -! gridref_nml: grid refinement settings -------------------------------------- -&gridref_nml - denom_diffu_v = 150. ! denominator for lateral boundary diffusion of velocity -/ - -! interpol_nml: settings for internal interpolation methods ------------------ -&interpol_nml - nudge_zone_width = 8 ! width of lateral boundary nudging zone - support_baryctr_intp = .FALSE. ! barycentric interpolation support for output - nudge_max_coeff = 0.07 - nudge_efold_width = 2.0 -/ - -! io_nml: general switches for model I/O ------------------------------------- -&io_nml - itype_pres_msl = 5 ! method for computation of mean sea level pressure - itype_rh = 1 ! method for computation of relative humidity - lmask_boundary = .TRUE. ! mask out interpolation zone in output -/ - -! limarea_nml: settings for limited area mode --------------------------------- -&limarea_nml - itype_latbc = 1 ! 1: time-dependent lateral boundary conditions - dtime_latbc = 10800 ! time difference between 2 consecutive boundary data - nlev_latbc = 90 ! Number of vertical levels in boundary data - latbc_boundary_grid = "{cfg.lateral_boundary_grid_scratch}" ! Grid file defining the lateral boundary - latbc_path = "{cfg.icon_input_icbc}" ! Absolute path to boundary data - latbc_varnames_map_file = "{cfg.map_file_latbc_scratch}" - latbc_filename = "{cfg.latbc_filename}" ! boundary data input filename - init_latbc_from_fg = .FALSE. ! .TRUE.: take lbc for initial time from first guess -/ - -! lnd_nml: land scheme switches ----------------------------------------------- -&lnd_nml - ntiles = 1 ! number of tiles - nlev_snow = 3 ! number of snow layers - lmulti_snow = .FALSE. ! .TRUE. for use of multi-layer snow model - idiag_snowfrac = 20 ! type of snow-fraction diagnosis - lsnowtile = .TRUE. ! .TRUE.=consider snow-covered and snow-free separately - itype_root = 2 ! root density distribution - itype_heatcond = 3 ! type of soil heat conductivity - itype_lndtbl = 4 ! table for associating surface parameters - itype_evsl = 4 ! type of bare soil evaporation - itype_root = 2 ! root density distribution - cwimax_ml = 5.e-4 ! scaling parameter for max. interception storage - c_soil = 1.75 ! surface area density of the evaporative soil surface - c_soil_urb = 0.5 ! same for urban areas - lseaice = .TRUE. ! .TRUE. for use of sea-ice model - llake = .TRUE. ! .TRUE. for use of lake model -/ - -! nonhydrostatic_nml: nonhydrostatic model ----------------------------------- -&nonhydrostatic_nml - iadv_rhotheta = 2 ! advection method for rho and rhotheta - ivctype = 2 ! type of vertical coordinate - itime_scheme = 4 ! time integration scheme - ndyn_substeps = 5 ! number of dynamics steps per fast-physics step - exner_expol = 0.333 ! temporal extrapolation of Exner function - vwind_offctr = 0.2 ! off-centering in vertical wind solver - damp_height = 12500.0 ! height at which Rayleigh damping of vertical wind starts - rayleigh_coeff = 1.5 ! Rayleigh damping coefficient - divdamp_order = 24 ! order of divergence damping - divdamp_type = 3 ! type of divergence damping - divdamp_fac = 0.004 ! scaling factor for divergence damping - l_open_ubc = .FALSE. ! .TRUE.=use open upper boundary condition - igradp_method = 3 ! discretization of horizontal pressure gradient - l_zdiffu_t = .TRUE. ! specifies computation of Smagorinsky temperature diffusion - thslp_zdiffu = 0.02 ! slope threshold (temperature diffusion) - thhgtd_zdiffu = 125.0 ! threshold of height difference (temperature diffusion) - htop_moist_proc = 22500.0 ! max. height for moist physics - hbot_qvsubstep = 22500.0 ! height above which QV is advected with substepping scheme -/ - -! nwp_phy_nml: switches for the physics schemes ------------------------------ -&nwp_phy_nml - inwp_gscp = 2 ! cloud microphysics and precipitation - inwp_convection = 1 ! convection - lshallowconv_only = .FALSE. ! only shallow convection - inwp_radiation = 1 ! radiation - inwp_cldcover = 1 ! cloud cover scheme for radiation - inwp_turb = 1 ! vertical diffusion and transfer - inwp_satad = 1 ! saturation adjustment - inwp_sso = 1 ! subgrid scale orographic drag - inwp_gwd = 0 ! non-orographic gravity wave drag - inwp_surface = 1 ! surface scheme - latm_above_top = .TRUE. ! take into account atmosphere above model top for radiation computation - ldetrain_conv_prec = .TRUE. - efdt_min_raylfric = 7200. ! minimum e-folding time of Rayleigh friction - itype_z0 = 2 ! type of roughness length data - icapdcycl = 3 ! apply CAPE modification to improve diurnalcycle over tropical land - icpl_aero_conv = 1 ! coupling between autoconversion and Tegen aerosol climatology - icpl_aero_gscp = 1 ! coupling between autoconversion and Tegen aerosol climatology - lrtm_filename = '{cfg.lrtm_filename_scratch}' ! longwave absorption coefficients for RRTM_LW - cldopt_filename = '{cfg.cldopt_filename_scratch}' ! RRTM cloud optical properties - dt_rad = 720. ! time step for radiation in s - dt_conv = 120.,90.,90. ! time step for convection in s (domain specific) - dt_sso = 120.,360.,360. ! time step for SSO parameterization - dt_gwd = 360.,360.,360. ! time step for gravity wave drag parameterization -/ - -! nwp_tuning_nml: additional tuning parameters ---------------------------------- -&nwp_tuning_nml - itune_albedo = 1 ! reduced albedo (w.r.t. MODIS data) over Sahara - tune_gkwake = 1.8 - tune_gkdrag = 0.01 - tune_minsnowfrac = 0.3 -/ - -! output_nml: specifies an output stream -------------------------------------- -&output_nml - filetype = 4 ! output format: 2=GRIB2, 4=NETCDFv2 - dom = 1 ! write domain 1 only - output_bounds = 0., 10000000., 3600. ! start, end, increment - steps_per_file = 1 ! number of steps per file - mode = 1 ! 1: forecast mode (relative t-axis), 2: climate mode (absolute t-axis) - include_last = .TRUE. - output_filename = 'ICON-ART-OEM' - filename_format = '{cfg.icon_output}/_DOM_' ! file name base - steps_per_file_inclfirst = .FALSE. - output_grid = .TRUE. - remap = 1 ! 1: remap to lat-lon grid - !north_pole = -170.,40. ! definition of north_pole for rotated lat-lon grid - reg_lon_def = -16.0,0.13,36.0 ! - reg_lat_def = 32.0,0.12,74.0 ! - ml_varlist = 'group:PBL_VARS', - 'group:ATMO_ML_VARS', - 'group:precip_vars', - 'group:land_vars', - 'group:nh_prog_vars', - 'z_mc', 'z_ifc', - 'group:ART_CHEMISTRY', - 'group:ART_DIAGNOSTICS', - 'group:ART_PASSIVE', - 'group:ART_AEROSOL' -/ - -! radiation_nml: radiation scheme --------------------------------------------- -&radiation_nml - irad_o3 = 7 ! ozone climatology - irad_aero = 6 ! aerosols - albedo_type = 2 ! type of surface albedo - vmr_co2 = 390.e-06 - vmr_ch4 = 1800.e-09 - vmr_n2o = 322.0e-09 - vmr_o2 = 0.20946 - vmr_cfc11 = 240.e-12 - vmr_cfc12 = 532.e-12 -/ - -! sleve_nml: vertical level specification ------------------------------------- -&sleve_nml - min_lay_thckn = 20.0 ! layer thickness of lowermost layer - top_height = 23000.0 ! height of model top - stretch_fac = 0.65 ! stretching factor to vary distribution of model levels - decay_scale_1 = 4000.0 ! decay scale of large-scale topography component - decay_scale_2 = 2500.0 ! decay scale of small-scale topography component - decay_exp = 1.2 ! exponent of decay function - flat_height = 16000.0 ! height above which the coordinate surfaces are flat -/ - -! transport_nml: tracer transport --------------------------------------------- -&transport_nml - npassive_tracer = 0 ! number of additional passive tracers - ivadv_tracer = 3, 3, 3, 3, 3, 3 ! tracer specific method to compute vertical advection - itype_hlimit = 3, 4, 4, 4, 4, 4 ! type of limiter for horizontal transport - ihadv_tracer = 52, 2, 2, 2, 2, 22 ! tracer specific method to compute horizontal advection - llsq_svd = .TRUE. ! use SV decomposition for least squares design matrix -/ - -! turbdiff_nml: turbulent diffusion ------------------------------------------- -&turbdiff_nml - tkhmin = 0.75 ! scaling factor for minimum vertical diffusion coefficient - tkmmin = 0.75 ! scaling factor for minimum vertical diffusion coefficient - pat_len = 750.0 ! effective length scale of thermal surface patterns - c_diff = 0.2 ! length scale factor for vertical diffusion of TKE - rat_sea = 7.5 ! controls laminar resistance for sea surface - ltkesso = .TRUE. ! consider TKE-production by sub-grid SSO wakes - frcsmot = 0.2 ! these 2 switches together apply vertical smoothing of the TKE source terms - imode_frcsmot = 2 ! in the tropics (only), which reduces the moist bias in the tropical lower troposphere - itype_sher = 3 ! type of shear forcing used in turbulence - ltkeshs = .TRUE. ! include correction term for coarse grids in hor. shear production term - a_hshr = 2.0 ! length scale factor for separated horizontal shear mode - icldm_turb = 1 ! mode of cloud water representation in turbulence - ldiff_qi = .TRUE. -/ - -EOF - -# ---------------------------------------------------------------------- -# run the model! -# ---------------------------------------------------------------------- - srun ./icon.exe diff --git a/cases/icon-art-oem-ensembles-test/icontools_remap_00_lbc_runjob.cfg b/cases/icon-art-oem-ensembles-test/icontools_remap_00_lbc_runjob.cfg deleted file mode 100755 index 4315e042..00000000 --- a/cases/icon-art-oem-ensembles-test/icontools_remap_00_lbc_runjob.cfg +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# PART I: Create auxiliary grid file which contains only the cells of the -# boundary zone. -#----------------------------------------------------------------------------- -cat > NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} << EOF_1 -&iconsub_nml - grid_filename = '{cfg.dynamics_grid_filename}', - output_type = 4, - lwrite_grid = .TRUE., -/ -&subarea_nml - ORDER = "{cfg.lateral_boundary_grid_order}", - grf_info_file = '{cfg.dynamics_grid_filename}', - min_refin_c_ctrl = 1 - max_refin_c_ctrl = 14 -/ -EOF_1 - -srun -n 1 {cfg.iconsub_bin} \ - --nml NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} 2>&1 - -#----------------------------------------------------------------------------- -# PART II: Extract boundary data -#----------------------------------------------------------------------------- -rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* - -set +x -cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF -! -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "U" - outputname = "U" - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "V" - outputname = "V" - intp_method = 3 -/ -&input_field_nml ! vertical velocity - inputname = "OMEGA" - outputname = "W" - code = 135 - intp_method = 3 -/ -&input_field_nml ! surface pressure - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -&input_field_nml ! geopotential - inputname = "Z" - outputname = "GEOSP" - code = 129 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "QV" - code = 133 - intp_method = 3 -/ -&input_field_nml ! cloud liquid water content - inputname = "CLWC" - outputname = "QC" - code = 246 - intp_method = 3 -/ -&input_field_nml ! cloud ice water content - inputname = "CIWC" - outputname = "QI" - code = 247 - intp_method = 3 -/ -&input_field_nml ! rain water content - inputname = "CRWC" - outputname = "QR" - code = 75 - intp_method = 3 -/ -&input_field_nml ! snow water content - inputname = "CSWC" - outputname = "QS" - code = 76 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -echo "DATAFILELIST is {datafile_list}" -for datafilename in {datafile_list} ; do - datafile="${{datafilename##*/}}" # get filename without path - outdatafile=${{datafile%.*}} # get filename without suffix - cat > NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} << EOF_2C -&remap_nml - in_grid_filename = '{cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix}' - in_filename = '{cfg.input_root_meteo}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.lateral_boundary_grid_scratch}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}_lbc.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -! ncstorage_file = "ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}" -/ -EOF_2C - - srun -n 1 {cfg.iconremap_bin} -q \ - --remap_nml NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} 2>&1 - -done - -#----------------------------------------------------------------------------- -# clean-up - -rm -f nml.log -rm -f NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- - diff --git a/cases/icon-art-oem-ensembles-test/icontools_remap_ic_chem_runjob.cfg b/cases/icon-art-oem-ensembles-test/icontools_remap_ic_chem_runjob.cfg deleted file mode 100755 index 767d3530..00000000 --- a/cases/icon-art-oem-ensembles-test/icontools_remap_ic_chem_runjob.cfg +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# Remap inital data onto local (limited-area) grid -#----------------------------------------------------------------------------- -cat > NAMELIST_ICONREMAP_FIELDS << EOF -! -&input_field_nml - inputname = "ch4" - outputname = "CH4_BG" - code = 255 - intp_method = 3 -/ -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "Q" - code = 133 - intp_method = 3 -/ -&input_field_nml - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -datafilename={cfg.input_root_chem}/{cfg.chem_prefix}{cfg.inidate_yyyymmdd_hh}{cfg.chem_suffix} -datafile="${{datafilename##*/}}" # get filename without path -outdatafile=${{datafile%.*}} # get filename without suffix - -# create ICON master namelist -# ------------------------ -# For a complete list see Namelist_overview and Namelist_overview.pdf - -cat > NAMELIST_ICONREMAP << EOF -&remap_nml - in_grid_filename = '{cfg.input_root_chem}/{cfg.chem_prefix}{cfg.inidate_yyyymmdd_hh}{cfg.chem_suffix}' - in_filename = '{cfg.input_root_chem}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.dynamics_grid_filename_scratch}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -/ -EOF - -srun -n 1 {cfg.iconremap_bin} \ - -vvvvv -q --remap_nml NAMELIST_ICONREMAP \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS 2>&1 - - -#----------------------------------------------------------------------------- -# clean-up - -rm -f ncstorage.tmp* -rm -f nml.log NAMELIST_SUB NAMELIST_ICONREMAP NAMELIST_ICONREMAP_FIELDS - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- diff --git a/cases/icon-art-oem-ensembles-test/icontools_remap_ic_runjob.cfg b/cases/icon-art-oem-ensembles-test/icontools_remap_ic_runjob.cfg deleted file mode 100755 index 2e0d4549..00000000 --- a/cases/icon-art-oem-ensembles-test/icontools_remap_ic_runjob.cfg +++ /dev/null @@ -1,242 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# Remap inital data onto local (limited-area) grid -#----------------------------------------------------------------------------- -cat > NAMELIST_ICONREMAP_FIELDS << EOF -! -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "U" - outputname = "U" - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "V" - outputname = "V" - intp_method = 3 -/ -&input_field_nml ! vertical velocity - inputname = "OMEGA" - outputname = "W" - code = 135 - intp_method = 3 -/ -&input_field_nml ! surface pressure - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -&input_field_nml ! geopotential - inputname = "Z" - outputname = "GEOSP" - code = 129 - intp_method = 3 -/ -&input_field_nml ! geopotential - inputname = "Z" - outputname = "GEOP_SFC" - code = 129 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "QV" - code = 133 - intp_method = 3 -/ -&input_field_nml ! cloud liquid water content - inputname = "CLWC" - outputname = "QC" - code = 246 - intp_method = 3 -/ -&input_field_nml ! cloud ice water content - inputname = "CIWC" - outputname = "QI" - code = 247 - intp_method = 3 -/ -&input_field_nml ! rain water content - inputname = "CRWC" - outputname = "QR" - code = 75 - intp_method = 3 -/ -&input_field_nml ! snow water content - inputname = "CSWC" - outputname = "QS" - code = 76 - intp_method = 3 -/ -&input_field_nml ! snow temperature - inputname = "TSN" - outputname = "T_SNOW" - code = 238 - intp_method = 3 -/ -&input_field_nml ! water content of snow - inputname = "SD" - outputname = "W_SNOW" - code = 141 - intp_method = 3 -/ -&input_field_nml ! density of snow - inputname = "RSN" - outputname = "RHO_SNOW" - code = 33 - intp_method = 3 -/ -&input_field_nml ! snow albedo - inputname = "ASN" - outputname = "ALB_SNOW" - code = 32 - intp_method = 3 -/ -&input_field_nml ! skin temperature - inputname = "SKT" - outputname = "SKT" - code = 235 - intp_method = 3 -/ -&input_field_nml ! sea surface temperature - inputname = "SST" - outputname = "SST" - code = 34 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 1 - inputname = "STL1" - outputname = "STL1" - code = 139 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 2 - inputname = "STL2" - outputname = "STL2" - code = 170 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 3 - inputname = "STL3" - outputname = "STL3" - code = 183 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 4 - inputname = "STL4" - outputname = "STL4" - code = 236 - intp_method = 3 -/ -&input_field_nml ! sea-ice cover - inputname = "CI" - outputname = "CI" - code = 31 - intp_method = 3 -/ -&input_field_nml ! water cont. of interception storage - inputname = "SRC" - outputname = "W_I" - code = 198 - intp_method = 3 -/ -&input_field_nml ! surface roughness - inputname = "SR" - outputname = "Z0" - code = 173 - intp_method = 3 -/ -&input_field_nml ! Land/sea mask - inputname = "LSM" - outputname = "LSM" - code = 172 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 1 - inputname = "SWVL1" - outputname = "SMIL1" - code = 80 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 2 - inputname = "SWVL2" - outputname = "SMIL2" - code = 81 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 3 - inputname = "SWVL3" - outputname = "SMIL3" - code = 82 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 4 - inputname = "SWVL4" - outputname = "SMIL4" - code = 83 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -datafilename={cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix} -datafile="${{datafilename##*/}}" # get filename without path -outdatafile=${{datafile%.*}} # get filename without suffix - -# create ICON master namelist -# ------------------------ -# For a complete list see Namelist_overview and Namelist_overview.pdf - -cat > NAMELIST_ICONREMAP << EOF -&remap_nml - in_grid_filename = '{cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix}' - in_filename = '{cfg.input_root_meteo}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.dynamics_grid_filename}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -/ -EOF - -srun -n 1 {cfg.iconremap_bin} \ - -vvvvv -q --remap_nml NAMELIST_ICONREMAP \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS 2>&1 - - -#----------------------------------------------------------------------------- -# clean-up - -rm -f ncstorage.tmp* -rm -f nml.log NAMELIST_SUB NAMELIST_ICONREMAP NAMELIST_ICONREMAP_FIELDS - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- diff --git a/cases/icon-art-oem-ensembles-test/icontools_remap_lbc_chem_runjob.cfg b/cases/icon-art-oem-ensembles-test/icontools_remap_lbc_chem_runjob.cfg deleted file mode 100755 index 1ae2a094..00000000 --- a/cases/icon-art-oem-ensembles-test/icontools_remap_lbc_chem_runjob.cfg +++ /dev/null @@ -1,90 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# Extract boundary data -#----------------------------------------------------------------------------- - -rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* - -cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF -! -&input_field_nml - inputname = "ch4" - outputname = "CH4_BG" - code = 255 - intp_method = 3 -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "Q" - code = 133 - intp_method = 3 -/ -&input_field_nml - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -echo "DATAFILELIST is {datafile_list_chem}" -for datafilename in {datafile_list_chem} ; do - datafile="${{datafilename##*/}}" # get filename without path - outdatafile=${{datafile%.*}} # get filename without suffix - cat > NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} << EOF_2C -&remap_nml - in_grid_filename = '{cfg.input_root_chem}/{cfg.chem_prefix}{cfg.inidate_yyyymmdd_hh}{cfg.chem_suffix}' - in_filename = '{cfg.input_root_chem}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.lateral_boundary_grid_scratch}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}_lbc.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -! ncstorage_file = "ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}" -/ -EOF_2C - - srun -n 1 {cfg.iconremap_bin} -q \ - --remap_nml NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} 2>&1 - -done - -#----------------------------------------------------------------------------- -# clean-up - -#rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* -rm -f nml.log -rm -f NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- - diff --git a/cases/icon-art-oem-ensembles-test/icontools_remap_lbc_rest_runjob.cfg b/cases/icon-art-oem-ensembles-test/icontools_remap_lbc_rest_runjob.cfg deleted file mode 100755 index 7bbedc54..00000000 --- a/cases/icon-art-oem-ensembles-test/icontools_remap_lbc_rest_runjob.cfg +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# Extract boundary data -#----------------------------------------------------------------------------- - -rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* - -cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF -! -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "U" - outputname = "U" - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. v - inputname = "V" - outputname = "V" - intp_method = 3 -/ -&input_field_nml ! vertical velocity - inputname = "OMEGA" - outputname = "W" - code = 135 - intp_method = 3 -/ -&input_field_nml ! surface pressure - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "QV" - code = 133 - intp_method = 3 -/ -&input_field_nml ! cloud liquid water content - inputname = "CLWC" - outputname = "QC" - code = 246 - intp_method = 3 -/ -&input_field_nml ! cloud ice water content - inputname = "CIWC" - outputname = "QI" - code = 247 - intp_method = 3 -/ -&input_field_nml ! rain water content - inputname = "CRWC" - outputname = "QR" - code = 75 - intp_method = 3 -/ -&input_field_nml ! snow water content - inputname = "CSWC" - outputname = "QS" - code = 76 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -echo "DATAFILELIST is {datafile_list_rest}" -for datafilename in {datafile_list_rest} ; do - datafile="${{datafilename##*/}}" # get filename without path - outdatafile=${{datafile%.*}} # get filename without suffix - cat > NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} << EOF_2C -&remap_nml - in_grid_filename = '{cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix}' - in_filename = '{cfg.input_root_meteo}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.lateral_boundary_grid_scratch}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}_lbc.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -! ncstorage_file = "ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}" -/ -EOF_2C - - srun -n 1 {cfg.iconremap_bin} -q \ - --remap_nml NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} 2>&1 - -done - -#----------------------------------------------------------------------------- -# clean-up - -#rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* -rm -f nml.log -rm -f NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- - diff --git a/cases/icon-art-oem-test/config.py b/cases/icon-art-oem-test/config.py index 0997dfa3..40b2fbbb 100644 --- a/cases/icon-art-oem-test/config.py +++ b/cases/icon-art-oem-test/config.py @@ -5,26 +5,25 @@ # GENERAL SETTINGS =========================================================== user = os.environ['USER'] -if os.path.exists(os.environ['HOME'] + '/.acct'): +if user == 'jenkins': + compute_account = 'g110' +elif os.path.exists(os.environ['HOME'] + '/.acct'): with open(os.environ['HOME'] + '/.acct', 'r') as file: compute_account = file.read().rstrip() else: compute_account = os.popen("id -gn").read().splitlines()[0] compute_host = 'daint' -compute_queue = 'debug' # 'normal' / 'debug' -constraint = 'mc' # 'mc' / 'gpu' +compute_queue = 'normal' +constraint = 'gpu' # 'mc' -target = 'icon-art-oem' +model = 'icon-art-oem' restart_step = 24 # hours -if constraint == 'gpu': - ntasks_per_node = 12 -elif constraint == 'mc': - ntasks_per_node = 36 +# Number of tasks per node +ntasks_per_node = 36 if constraint == 'mc' else 12 -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) +# Case name = pathname in cases/ +casename = os.path.basename(os.path.dirname(os.path.realpath(__file__))) # Root directory of the sourcecode of the chain (where run_chain.py is) chain_src_dir = os.getcwd() @@ -32,28 +31,23 @@ # Root directory of the working space of the chain work_root = os.path.join(chain_src_dir, 'work') -# Directory where executables are stored -exe_dir = "/store/empa/em05/executables" - # Case directory case_dir = os.path.join(chain_src_dir, 'cases', casename) -# PREPARE_DATA --------------------------------------------------------------- -input_root = '/store/empa/em05/input_iconart_processing_chain_example/' - -input_root_meteo = '/store/empa/em05/input_iconart_processing_chain_example/meteo' +# PRE-PROCESSING ============================================================= +input_root = os.path.join(chain_src_dir, 'input', model) +# meteo +input_root_meteo = os.path.join(input_root, 'meteo') meteo_prefix = 'ifs_' meteo_nameformat = meteo_prefix + '%Y%m%d%H' meteo_suffix = '.grb' meteo_inc = 3 -input_root_chem = '/store/empa/em05/input_iconart_processing_chain_example/chem' - +input_root_chem = os.path.join(input_root, 'chem') input_root_icbc = os.path.join(input_root, 'icbc') chem_prefix = 'cams_gqpe_' chem_nameformat = chem_prefix + '%Y%m%d_%H' chem_suffix = '.grb' -chem_inc = 3 icontools_runjobs = [ 'icontools_remap_ic_runjob.cfg', @@ -63,27 +57,27 @@ 'icontools_remap_lbc_chem_runjob.cfg', ] -# Icontools executables -#icontools_dir = '/project/s903/mjaehn/spack-install/daint/icontools/master/cce/ldcbgsjjzq2p73xbei7ws4wce5ivzxer/bin/' -icontools_dir = '/scratch/snx3000/msteiner/spack-stages/daint/spack-stage-icontools-master-t524rnfa5sfyn4rbvarypyzwae4jg46d/spack-src/icontools' -iconremap_bin = os.path.join(icontools_dir, "iconremap") -iconsub_bin = os.path.join(icontools_dir, "iconsub") - # Input data for runscript---------------------------------------------------- # Grid -input_root_grid = os.path.join(input_root, 'grids') -radiation_grid_filename = os.path.join(input_root_grid, - "testcase_DOM01.parent.nc") -dynamics_grid_filename = os.path.join(input_root_grid, "testcase_DOM01.nc") -map_file_latbc = os.path.join(input_root_grid, "map_file.latbc") -extpar_filename = os.path.join( - input_root_grid, "external_parameter_icon_testcase_DOM01_tiles.nc") -input_root_rad = os.path.join(input_root, 'rad') -cldopt_filename = os.path.join(input_root_rad, 'rrtm_cldopt.nc') -lrtm_filename = os.path.join(input_root_rad, 'rrtmg_lw.nc') - -input_root_mapping = os.path.join(input_root, 'mapping') -map_file_ana = os.path.join(input_root_mapping, "map_file.ana") + +input_files = { + 'radiation_grid_filename': ['testcase_DOM01.parent.nc', 'grid'], + 'dynamics_grid_filename': ['testcase_DOM01.nc', 'grid'], + 'map_file_latbc': ['map_file.latbc', 'grid'], + 'lateral_boundary_grid': ['lateral_boundary.grid.nc', 'grid'], + 'extpar_filename': + ['external_parameter_icon_testcase_DOM01_tiles.nc', 'grid'], + 'cldopt_filename': ['rrtm_cldopt.nc', 'rad'], + 'lrtm_filename': ['rrtmg_lw.nc', 'rad'], + 'map_file_ana': ['map_file.ana', 'mapping'], + 'chemtracer_xml_filename': ['tracers_oh_pntsrc.xml', 'XML'], + 'pntSrc_xml_filename': ['pntSrc_example.xml', 'XML'], + 'oem_gridded_emissions_nc': ['tno_3cat.nc', 'OEM'], + 'oem_vertical_profiles_nc': ['vertical_profiles.nc', 'OEM'], + 'oem_hourofday_nc': ['hourofday.nc', 'OEM'], + 'oem_dayofweek_nc': ['dayofweek.nc', 'OEM'], + 'oem_monthofyear_nc': ['monthofyear.nc', 'OEM'], +} # File names ----------------------------------------------------------------- latbc_filename = "ifs__lbc.nc" @@ -91,35 +85,28 @@ inidata_nameformat = inidata_prefix + '%Y%m%d%H' inidata_filename_suffix = ".nc" -output_filename = "icon-art-test" +output_filename = "icon-art-oem-test" filename_format = "_DOM_" +lateral_boundary_grid_order = 'lateral_boundary' + # ART settings---------------------------------------------------------------- -input_root_tracers = os.path.join(input_root, 'XML') -chemtracer_xml_filename = os.path.join(input_root_tracers, - 'tracers_oh_pntsrc.xml') -pntSrc_xml_filename = os.path.join(input_root_tracers, 'pntSrc_example.xml') art_input_folder = os.path.join(input_root, 'ART') -# OAE ------------------------------------------------------------------------ -# Online anthropogenic emissions -oae_dir = os.path.join(input_root, 'OEM') -oae_gridded_emissions_nc = 'tno_3cat.nc' -oae_vertical_profiles_nc = 'vertical_profiles.nc' -oae_hourofday_nc = 'hourofday.nc' -oae_dayofweek_nc = 'dayofweek.nc' -oae_monthofyear_nc = 'monthofyear.nc' -#oae_hourofyear_nc = 'hourofyear.nc' - # SIMULATION ================================================================= # ICON ----------------------------------------------------------------------- # Executable -icon_bin = os.path.join(exe_dir, "icon-art-oem-nudging_20211011") +icon_bin = os.path.join(chain_src_dir, 'src', 'icon-art', 'bin', 'icon') + +# eccodes +eccodes_dir = os.path.join(chain_src_dir, 'input', 'eccodes_definitions') + +# Icontools executables +iconremap_bin = 'iconremap' +iconsub_bin = 'iconsub' # Namelists and slurm runscript templates icon_runjob = os.path.join(case_dir, 'icon_runjob.cfg') -icon_namelist_master = os.path.join(case_dir, 'icon_master.namelist.cfg') -icon_namelist_nwp = os.path.join(case_dir, 'icon_NAMELIST_NWP.cfg') # Walltimes and domain decomposition if compute_queue == "normal": @@ -128,9 +115,6 @@ elif compute_queue == "debug": icon_walltime = "00:30:00" icon_np_tot = 10 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) # POST-PROCESSING ============================================================ # REDUCE_OUTPUT -------------------------------------------------------------- diff --git a/cases/icon-art-oem-test/icon_runjob.cfg b/cases/icon-art-oem-test/icon_runjob.cfg old mode 100755 new mode 100644 index 1d4f4e66..a19192ce --- a/cases/icon-art-oem-test/icon_runjob.cfg +++ b/cases/icon-art-oem-test/icon_runjob.cfg @@ -20,20 +20,11 @@ export ICON_THREADS=1 export OMP_SCHEDULE=static,12 export OMP_DYNAMIC="false" export OMP_STACKSIZE=200M -# -# MPI variables -# ------------- -no_of_nodes={cfg.icon_np_tot} -mpi_procs_pernode={cfg.ntasks_per_node} -((mpi_total_procs=no_of_nodes * mpi_procs_pernode)) -# -# blocking length -# --------------- -nproma=16 -set -x +set -e -x -export ECCODES_DEFINITION_PATH=/users/msteiner/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-19.10/share/eccodes/definitions +# -- ECCODES path +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions # ---------------------------------------------------------------------------- # Link radiation input files @@ -118,18 +109,17 @@ cat > NAMELIST_NWP << EOF cart_cheminit_coord = '{inidata_filename}' iart_seasalt = 0 ! enable seasalt cart_chemtracer_xml = '{cfg.chemtracer_xml_filename_scratch}' ! path to xml file for passive tracers - cart_pntSrc_xml = '{cfg.pntSrc_xml_filename}' + cart_pntSrc_xml = '{cfg.pntSrc_xml_filename_scratch}' cart_input_folder = '{cfg.art_input_folder}' ! absolute Path to ART source code / ! oem_nml: online emission module --------------------------------------------- &oemctrl_nml - gridded_emissions_nc = '{cfg.oae_gridded_emissions_nc_scratch}' - vertical_profile_nc = '{cfg.oae_vertical_profiles_nc_scratch}' - hour_of_day_nc = '{cfg.oae_hourofday_nc_scratch}' - day_of_week_nc = '{cfg.oae_dayofweek_nc_scratch}' - month_of_year_nc = '{cfg.oae_monthofyear_nc_scratch}' - hour_of_year_nc = '{cfg.oae_hourofyear_nc_scratch}' + gridded_emissions_nc = '{cfg.oem_gridded_emissions_nc_scratch}' + vertical_profile_nc = '{cfg.oem_vertical_profiles_nc_scratch}' + hour_of_day_nc = '{cfg.oem_hourofday_nc_scratch}' + day_of_week_nc = '{cfg.oem_dayofweek_nc_scratch}' + month_of_year_nc = '{cfg.oem_monthofyear_nc_scratch}' / ! diffusion_nml: horizontal (numerical) diffusion ---------------------------- @@ -300,7 +290,7 @@ cat > NAMELIST_NWP << EOF steps_per_file = 1 ! number of steps per file mode = 1 ! 1: forecast mode (relative t-axis), 2: climate mode (absolute t-axis) include_last = .TRUE. - output_filename = 'ICON-ART-OEM' + output_filename = 'ICON-ART' filename_format = '{cfg.icon_output}/_DOM_' ! file name base steps_per_file_inclfirst = .FALSE. output_grid = .TRUE. @@ -360,6 +350,7 @@ cat > NAMELIST_NWP << EOF pat_len = 750.0 ! effective length scale of thermal surface patterns c_diff = 0.2 ! length scale factor for vertical diffusion of TKE rat_sea = 7.5 ! controls laminar resistance for sea surface + rlam_heat = 1 ltkesso = .TRUE. ! consider TKE-production by sub-grid SSO wakes frcsmot = 0.2 ! these 2 switches together apply vertical smoothing of the TKE source terms imode_frcsmot = 2 ! in the tropics (only), which reduces the moist bias in the tropical lower troposphere diff --git a/cases/icon-art-oem-test/icontools_remap_00_lbc_runjob.cfg b/cases/icon-art-oem-test/icontools_remap_00_lbc_runjob.cfg old mode 100755 new mode 100644 index 4315e042..190c9871 --- a/cases/icon-art-oem-test/icontools_remap_00_lbc_runjob.cfg +++ b/cases/icon-art-oem-test/icontools_remap_00_lbc_runjob.cfg @@ -13,9 +13,12 @@ ulimit -s unlimited -set -x +set -e -x -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions + +. {cfg.chain_src_dir}/src/spack-c2sm/setup-env.sh +spack load icontools #----------------------------------------------------------------------------- # PART I: Create auxiliary grid file which contains only the cells of the diff --git a/cases/icon-art-oem-test/icontools_remap_ic_chem_runjob.cfg b/cases/icon-art-oem-test/icontools_remap_ic_chem_runjob.cfg old mode 100755 new mode 100644 index 767d3530..0e1850a7 --- a/cases/icon-art-oem-test/icontools_remap_ic_chem_runjob.cfg +++ b/cases/icon-art-oem-test/icontools_remap_ic_chem_runjob.cfg @@ -13,9 +13,12 @@ ulimit -s unlimited -set -x +set -e -x -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions + +. {cfg.chain_src_dir}/src/spack-c2sm/setup-env.sh +spack load icontools #----------------------------------------------------------------------------- # Remap inital data onto local (limited-area) grid diff --git a/cases/icon-art-oem-test/icontools_remap_ic_runjob.cfg b/cases/icon-art-oem-test/icontools_remap_ic_runjob.cfg old mode 100755 new mode 100644 index 2e0d4549..8ac77d8f --- a/cases/icon-art-oem-test/icontools_remap_ic_runjob.cfg +++ b/cases/icon-art-oem-test/icontools_remap_ic_runjob.cfg @@ -13,9 +13,12 @@ ulimit -s unlimited -set -x +set -e-x -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions + +. {cfg.chain_src_dir}/src/spack-c2sm/setup-env.sh +spack load icontools #----------------------------------------------------------------------------- # Remap inital data onto local (limited-area) grid diff --git a/cases/icon-art-oem-test/icontools_remap_lbc_chem_runjob.cfg b/cases/icon-art-oem-test/icontools_remap_lbc_chem_runjob.cfg old mode 100755 new mode 100644 index 1ae2a094..32e0f5c8 --- a/cases/icon-art-oem-test/icontools_remap_lbc_chem_runjob.cfg +++ b/cases/icon-art-oem-test/icontools_remap_lbc_chem_runjob.cfg @@ -13,9 +13,12 @@ ulimit -s unlimited -set -x +set -e -x -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions + +. {cfg.chain_src_dir}/src/spack-c2sm/setup-env.sh +spack load icontools #----------------------------------------------------------------------------- # Extract boundary data @@ -30,6 +33,7 @@ cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF outputname = "CH4_BG" code = 255 intp_method = 3 +/ &input_field_nml ! temperature inputname = "T" outputname = "T" diff --git a/cases/icon-art-oem-test/icontools_remap_lbc_rest_runjob.cfg b/cases/icon-art-oem-test/icontools_remap_lbc_rest_runjob.cfg old mode 100755 new mode 100644 index 7bbedc54..24f53352 --- a/cases/icon-art-oem-test/icontools_remap_lbc_rest_runjob.cfg +++ b/cases/icon-art-oem-test/icontools_remap_lbc_rest_runjob.cfg @@ -13,9 +13,12 @@ ulimit -s unlimited -set -x +set -e -x -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions +export ECCODES_DEFINITION_PATH={cfg.eccodes_dir}/definitions.edzw-2.12.5-2:{cfg.eccodes_dir}/definitions + +. {cfg.chain_src_dir}/src/spack-c2sm/setup-env.sh +spack load icontools #----------------------------------------------------------------------------- # Extract boundary data @@ -24,7 +27,6 @@ export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions. rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF -! &input_field_nml ! temperature inputname = "T" outputname = "T" @@ -102,7 +104,6 @@ for datafilename in {datafile_list_rest} ; do out_type = 2 out_filetype = 4 l_have3dbuffer = .false. -! ncstorage_file = "ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}" / EOF_2C diff --git a/cases/icon-art-test/config.py b/cases/icon-art-test/config.py deleted file mode 100644 index 66bb4d56..00000000 --- a/cases/icon-art-test/config.py +++ /dev/null @@ -1,154 +0,0 @@ -import os -""" -Configuration file for the 'icon-art-test' case with ICON-ART -""" - -# GENERAL SETTINGS =========================================================== -user = os.environ['USER'] -if os.path.exists(os.environ['HOME'] + '/.acct'): - with open(os.environ['HOME'] + '/.acct', 'r') as file: - compute_account = file.read().rstrip() -else: - compute_account = os.popen("id -gn").read().splitlines()[0] -compute_host = 'daint' -compute_queue = 'debug' # 'normal' / 'debug' -constraint = 'mc' # 'mc' / 'gpu' - -target = 'icon-art' -restart_step = 24 # hours - -if constraint == 'gpu': - ntasks_per_node = 12 -elif constraint == 'mc': - ntasks_per_node = 36 - -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) - -# Root directory of the sourcecode of the chain (where run_chain.py is) -chain_src_dir = os.getcwd() - -# Root directory of the working space of the chain -work_root = os.path.join(chain_src_dir, 'work') - -# Directory where executables are stored -exe_dir = "/store/empa/em05/executables" - -# Case directory -case_dir = os.path.join(chain_src_dir, 'cases', casename) - -# PREPARE_DATA --------------------------------------------------------------- -input_root = '/store/empa/em05/input_iconart_processing_chain_example/' - -input_root_meteo = '/store/empa/em05/input_iconart_processing_chain_example/meteo' -meteo_prefix = 'ifs_' -meteo_nameformat = meteo_prefix + '%Y%m%d%H' -meteo_suffix = '.grb' -meteo_inc = 3 - -input_root_icbc = os.path.join(input_root, 'icbc') -chem_prefix = 'cams_gqpe' -chem_nameformat = chem_prefix + '_%Y%m%d_%H' -chem_suffix = '.nc' - -icontools_runjobs = [ - 'icontools_remap_ic_runjob.cfg', - 'icontools_remap_00_lbc_runjob.cfg', - 'icontools_remap_lbc_rest_runjob.cfg', -] - -# Icontools executables -#icontools_dir = '/project/s903/mjaehn/spack-install/daint/icontools/master/cce/ldcbgsjjzq2p73xbei7ws4wce5ivzxer/bin/' -icontools_dir = '/scratch/snx3000/msteiner/spack-stages/daint/spack-stage-icontools-master-t524rnfa5sfyn4rbvarypyzwae4jg46d/spack-src/icontools' -iconremap_bin = os.path.join(icontools_dir, "iconremap") -iconsub_bin = os.path.join(icontools_dir, "iconsub") - -# Input data for runscript---------------------------------------------------- -# Grid -input_root_grid = os.path.join(input_root, 'grids') -radiation_grid_filename = os.path.join(input_root_grid, - "testcase_DOM01.parent.nc") -dynamics_grid_filename = os.path.join(input_root_grid, "testcase_DOM01.nc") -map_file_latbc = os.path.join(input_root_grid, "map_file.latbc") -extpar_filename = os.path.join( - input_root_grid, "external_parameter_icon_testcase_DOM01_tiles.nc") -input_root_rad = os.path.join(input_root, 'rad') -cldopt_filename = os.path.join(input_root_rad, 'rrtm_cldopt.nc') -lrtm_filename = os.path.join(input_root_rad, 'rrtmg_lw.nc') - -input_root_mapping = os.path.join(input_root, 'mapping') -map_file_ana = os.path.join(input_root_mapping, "map_file.ana") - -# File names ----------------------------------------------------------------- -latbc_filename = "ifs__lbc.nc" -inidata_prefix = "ifs_init_" -inidata_nameformat = inidata_prefix + '%Y%m%d%H' -inidata_filename_suffix = ".nc" - -output_filename = "icon-art-test" -filename_format = "_DOM_" - -# ART settings---------------------------------------------------------------- -input_root_tracers = os.path.join(input_root, 'XML') -chemtracer_xml_filename = os.path.join(input_root_tracers, - 'tracers_oh_pntsrc.xml') -pntSrc_xml_filename = os.path.join(input_root_tracers, 'pntSrc_example.xml') -art_input_folder = os.path.join(input_root, 'ART') - -# SIMULATION ================================================================= -# ICON ----------------------------------------------------------------------- -# Executable -icon_bin = os.path.join(exe_dir, "icon-kit-art_20211018") - -# Namelists and slurm runscript templates -icon_runjob = os.path.join(case_dir, 'icon_runjob.cfg') -icon_namelist_master = os.path.join(case_dir, 'icon_master.namelist.cfg') -icon_namelist_nwp = os.path.join(case_dir, 'icon_NAMELIST_NWP.cfg') - -# Walltimes and domain decomposition -if compute_queue == "normal": - icon_walltime = "00:30:00" - icon_np_tot = 16 -elif compute_queue == "debug": - icon_walltime = "00:30:00" - icon_np_tot = 10 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) - -# POST-PROCESSING ============================================================ -# REDUCE_OUTPUT -------------------------------------------------------------- -convert_gas = True -output_levels = 20 - -# POST_COSMO ----------------------------------------------------------------- -# Root directory where the output of the chain is copied to -output_root = os.path.join(chain_src_dir, "output", casename) - -# VERIFY_CHAIN --------------------------------------------------------------- -reference_dir = os.path.join(input_root, "reference_output") - -# If the output file that gets compared to the reference is not at the location -# that post_icon copied it to, give the path to it here. Else leave it 'None' -#output_dir = None -output_dir = os.path.join(work_root, casename, '2018010100_0_24', 'icon', - 'output') - -# variables_to_check is a dict() with a tuple() of filenames as key and a list -# of variables-names as value. The tuple consists of the filenames of the two -# files to check, the list contains the variable-names that are compared. -# The verify_chain job will look for the files in the reference_dir (first tuple -# element) and the ouput_dir (second tuple element) -values_to_check = { - ("icon-oem-pgi-20.1.1-cpu-20210215-NWP_LAM_DOM01_01000000.nc", "NWP_LAM_DOM01_01000000.nc"): - [ - 'temp', - 'pres', - 'u', - 'v', - 'w', - 'OEM_tracer_1', - 'OEM_tracer_2', - ] -} diff --git a/cases/icon-art-test/icon_runjob.cfg b/cases/icon-art-test/icon_runjob.cfg deleted file mode 100755 index f2bcf112..00000000 --- a/cases/icon-art-test/icon_runjob.cfg +++ /dev/null @@ -1,365 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --time={cfg.icon_walltime} -#SBATCH --nodes={cfg.icon_np_tot} -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --hint=nomultithread -#SBATCH --output={logfile} -#SBATCH --open-mode=append -#SBATCH --chdir={cfg.icon_work} - -# OpenMP environment variables -# ---------------------------- -export OMP_NUM_THREADS=1 -export ICON_THREADS=1 -export OMP_SCHEDULE=static,12 -export OMP_DYNAMIC="false" -export OMP_STACKSIZE=200M -# -# MPI variables -# ------------- -no_of_nodes={cfg.icon_np_tot} -mpi_procs_pernode={cfg.ntasks_per_node} -((mpi_total_procs=no_of_nodes * mpi_procs_pernode)) -# -# blocking length -# --------------- -nproma=16 - -set -x - -export ECCODES_DEFINITION_PATH=/users/msteiner/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-19.10/share/eccodes/definitions - -# ---------------------------------------------------------------------------- -# Link radiation input files -# ---------------------------------------------------------------------------- -ln -sf {cfg.art_input_folder}/runctrl_examples/photo_ctrl/* . -ln -sf {cfg.art_input_folder}/runctrl_examples/init_ctrl/* . - -# ---------------------------------------------------------------------------- -# create ICON master namelist -# ---------------------------------------------------------------------------- - -cat > icon_master.namelist << EOF -! master_nml: ---------------------------------------------------------------- -&master_nml - lrestart = {cfg.lrestart} ! .TRUE.=current experiment is resumed -/ - -! master_model_nml: repeated for each model ---------------------------------- -&master_model_nml - model_type = 1 ! identifies which component to run (atmosphere,ocean,...) - model_name = "ATMO" ! character string for naming this component. - model_namelist_filename = "NAMELIST_NWP" ! file name containing the model namelists - model_min_rank = 1 ! start MPI rank for this model - model_max_rank = 65536 ! end MPI rank for this model - model_inc_rank = 1 ! stride of MPI ranks -/ - -! time_nml: specification of date and time------------------------------------ -&time_nml - ini_datetime_string = "{cfg.ini_datetime_string}" ! initial date and time of the simulation - end_datetime_string = "{cfg.end_datetime_string}" ! end date and time of the simulation 10T00 -/ -EOF - -# ---------------------------------------------------------------------- -# model namelists -# ---------------------------------------------------------------------- - -cat > NAMELIST_NWP << EOF -! parallel_nml: MPI parallelization ------------------------------------------- -¶llel_nml - nproma = 128 ! loop chunk length - p_test_run = .FALSE. ! .TRUE. means verification run for MPI parallelization - num_io_procs = 1 ! number of I/O processors - num_restart_procs = 0 ! number of restart processors - num_prefetch_proc = 1 ! number of processors for LBC prefetching - iorder_sendrecv = 3 ! sequence of MPI send/receive calls -/ - - -! run_nml: general switches --------------------------------------------------- -&run_nml - ltestcase = .FALSE. ! real case run - num_lev = 60 ! number of full levels (atm.) for each domain - lvert_nest = .FALSE. ! no vertical nesting - dtime = 60. ! timestep in seconds - ldynamics = .TRUE. ! compute adiabatic dynamic tendencies - ltransport = .TRUE. ! compute large-scale tracer transport - ntracer = 0 ! number of advected tracers - iforcing = 3 ! forcing of dynamics and transport by parameterized processes - msg_level = 7 ! detailed report during integration - ltimer = .TRUE. ! timer for monitoring the runtime of specific routines - timers_level = 10 ! performance timer granularity - check_uuid_gracefully = .TRUE. ! give only warnings for non-matching uuids - output = "nml" ! main switch for enabling/disabling components of the model output - lart = .TRUE. ! main switch for ART - debug_check_level = 10 -/ - -! art_nml: Aerosols and Reactive Trace gases extension------------------------------------------------- -&art_nml - lart_chem = .TRUE. ! enables chemistry - lart_pntSrc = .TRUE. ! enables point sources - lart_aerosol = .FALSE. ! main switch for the treatment of atmospheric aerosol - lart_chemtracer = .TRUE. ! main switch for the treatment of chemical tracer - lart_diag_out = .TRUE. ! If this switch is set to .TRUE., diagnostic - ! ... output elds are available. Set it to - ! ... .FALSE. when facing memory problems. - iart_init_gas = 0 - iart_seasalt = 0 ! enable seasalt - cart_chemtracer_xml = '{cfg.chemtracer_xml_filename_scratch}' ! path to xml file for passive tracers - cart_pntSrc_xml = '{cfg.pntSrc_xml_filename_scratch}' - cart_input_folder = '{cfg.art_input_folder}' ! absolute Path to ART source code -/ - -! diffusion_nml: horizontal (numerical) diffusion ---------------------------- -&diffusion_nml - lhdiff_vn = .TRUE. ! diffusion on the horizontal wind field - lhdiff_temp = .TRUE. ! diffusion on the temperature field - lhdiff_w = .TRUE. ! diffusion on the vertical wind field - hdiff_order = 5 ! order of nabla operator for diffusion - itype_vn_diffu = 1 ! reconstruction method used for Smagorinsky diffusion - itype_t_diffu = 2 ! discretization of temperature diffusion - hdiff_efdt_ratio = 24.0 ! ratio of e-folding time to time step - hdiff_smag_fac = 0.025 ! scaling factor for Smagorinsky diffusion -/ - -! dynamics_nml: dynamical core ----------------------------------------------- -&dynamics_nml - iequations = 3 ! type of equations and prognostic variables - idiv_method = 1 ! method for divergence computation - divavg_cntrwgt = 0.50 ! weight of central cell for divergence averaging - lcoriolis = .TRUE. ! Coriolis force -/ - -! extpar_nml: external data -------------------------------------------------- -&extpar_nml - itopo = 1 ! topography (0:analytical) - extpar_filename = '{cfg.extpar_filename_scratch}' ! filename of external parameter input file - n_iter_smooth_topo = 1,1 ! iterations of topography smoother - heightdiff_threshold = 3000. ! height difference between neighb. grid points - hgtdiff_max_smooth_topo = 750.,750. ! see Namelist doc - heightdiff_threshold = 2250.,1500. -/ - -! initicon_nml: specify read-in of initial state ------------------------------ -&initicon_nml - init_mode = 2 ! 7: start from DWD fg with subsequent vertical remapping - lread_ana = .FALSE. ! no analysis data will be read - ifs2icon_filename = "{inidata_filename}" ! initial data filename - ana_varnames_map_file = "{cfg.map_file_ana_scratch}" ! dictionary mapping internal names onto GRIB2 shortNames - ltile_coldstart = .TRUE. ! coldstart for surface tiles - ltile_init = .FALSE. ! set it to .TRUE. if FG data originate from run without tiles -/ - -! grid_nml: horizontal grid -------------------------------------------------- -&grid_nml - dynamics_grid_filename = "{cfg.dynamics_grid_filename_scratch}" ! array of the grid filenames for the dycore - radiation_grid_filename = "{cfg.radiation_grid_filename_scratch}" ! array of the grid filenames for the radiation model - dynamics_parent_grid_id = 0 ! array of the indexes of the parent grid filenames - lredgrid_phys = .TRUE. ! .true.=radiation is calculated on a reduced grid - lfeedback = .TRUE. ! specifies if feedback to parent grid is performed - l_limited_area = .TRUE. ! .TRUE. performs limited area run - ifeedback_type = 2 ! feedback type (incremental/relaxation-based) - start_time = 0. ! Time when a nested domain starts to be active [s] -/ - -! gridref_nml: grid refinement settings -------------------------------------- -&gridref_nml - denom_diffu_v = 150. ! denominator for lateral boundary diffusion of velocity -/ - -! interpol_nml: settings for internal interpolation methods ------------------ -&interpol_nml - nudge_zone_width = 8 ! width of lateral boundary nudging zone - support_baryctr_intp = .FALSE. ! barycentric interpolation support for output - nudge_max_coeff = 0.07 - nudge_efold_width = 2.0 -/ - -! io_nml: general switches for model I/O ------------------------------------- -&io_nml - itype_pres_msl = 5 ! method for computation of mean sea level pressure - itype_rh = 1 ! method for computation of relative humidity - lmask_boundary = .TRUE. ! mask out interpolation zone in output -/ - -! limarea_nml: settings for limited area mode --------------------------------- -&limarea_nml - itype_latbc = 1 ! 1: time-dependent lateral boundary conditions - dtime_latbc = 10800 ! time difference between 2 consecutive boundary data - nlev_latbc = 90 ! Number of vertical levels in boundary data - latbc_boundary_grid = "{cfg.lateral_boundary_grid_scratch}" ! Grid file defining the lateral boundary - latbc_path = "{cfg.icon_input_icbc}" ! Absolute path to boundary data - latbc_varnames_map_file = "{cfg.map_file_latbc_scratch}" - latbc_filename = "{cfg.latbc_filename}" ! boundary data input filename - init_latbc_from_fg = .FALSE. ! .TRUE.: take lbc for initial time from first guess -/ - -! lnd_nml: land scheme switches ----------------------------------------------- -&lnd_nml - ntiles = 1 ! number of tiles - nlev_snow = 3 ! number of snow layers - lmulti_snow = .FALSE. ! .TRUE. for use of multi-layer snow model - idiag_snowfrac = 20 ! type of snow-fraction diagnosis - lsnowtile = .TRUE. ! .TRUE.=consider snow-covered and snow-free separately - itype_root = 2 ! root density distribution - itype_heatcond = 3 ! type of soil heat conductivity - itype_lndtbl = 4 ! table for associating surface parameters - itype_evsl = 4 ! type of bare soil evaporation - itype_root = 2 ! root density distribution - cwimax_ml = 5.e-4 ! scaling parameter for max. interception storage - c_soil = 1.75 ! surface area density of the evaporative soil surface - c_soil_urb = 0.5 ! same for urban areas - lseaice = .TRUE. ! .TRUE. for use of sea-ice model - llake = .TRUE. ! .TRUE. for use of lake model -/ - -! nonhydrostatic_nml: nonhydrostatic model ----------------------------------- -&nonhydrostatic_nml - iadv_rhotheta = 2 ! advection method for rho and rhotheta - ivctype = 2 ! type of vertical coordinate - itime_scheme = 4 ! time integration scheme - ndyn_substeps = 5 ! number of dynamics steps per fast-physics step - exner_expol = 0.333 ! temporal extrapolation of Exner function - vwind_offctr = 0.2 ! off-centering in vertical wind solver - damp_height = 12500.0 ! height at which Rayleigh damping of vertical wind starts - rayleigh_coeff = 1.5 ! Rayleigh damping coefficient - divdamp_order = 24 ! order of divergence damping - divdamp_type = 3 ! type of divergence damping - divdamp_fac = 0.004 ! scaling factor for divergence damping - l_open_ubc = .FALSE. ! .TRUE.=use open upper boundary condition - igradp_method = 3 ! discretization of horizontal pressure gradient - l_zdiffu_t = .TRUE. ! specifies computation of Smagorinsky temperature diffusion - thslp_zdiffu = 0.02 ! slope threshold (temperature diffusion) - thhgtd_zdiffu = 125.0 ! threshold of height difference (temperature diffusion) - htop_moist_proc = 22500.0 ! max. height for moist physics - hbot_qvsubstep = 22500.0 ! height above which QV is advected with substepping scheme -/ - -! nwp_phy_nml: switches for the physics schemes ------------------------------ -&nwp_phy_nml - inwp_gscp = 2 ! cloud microphysics and precipitation - inwp_convection = 1 ! convection - lshallowconv_only = .FALSE. ! only shallow convection - inwp_radiation = 1 ! radiation - inwp_cldcover = 1 ! cloud cover scheme for radiation - inwp_turb = 1 ! vertical diffusion and transfer - inwp_satad = 1 ! saturation adjustment - inwp_sso = 1 ! subgrid scale orographic drag - inwp_gwd = 0 ! non-orographic gravity wave drag - inwp_surface = 1 ! surface scheme - latm_above_top = .TRUE. ! take into account atmosphere above model top for radiation computation - ldetrain_conv_prec = .TRUE. - efdt_min_raylfric = 7200. ! minimum e-folding time of Rayleigh friction - itype_z0 = 2 ! type of roughness length data - icapdcycl = 3 ! apply CAPE modification to improve diurnalcycle over tropical land - icpl_aero_conv = 1 ! coupling between autoconversion and Tegen aerosol climatology - icpl_aero_gscp = 1 ! coupling between autoconversion and Tegen aerosol climatology - lrtm_filename = '{cfg.lrtm_filename_scratch}' ! longwave absorption coefficients for RRTM_LW - cldopt_filename = '{cfg.cldopt_filename_scratch}' ! RRTM cloud optical properties - dt_rad = 720. ! time step for radiation in s - dt_conv = 120.,90.,90. ! time step for convection in s (domain specific) - dt_sso = 120.,360.,360. ! time step for SSO parameterization - dt_gwd = 360.,360.,360. ! time step for gravity wave drag parameterization -/ - -! nwp_tuning_nml: additional tuning parameters ---------------------------------- -&nwp_tuning_nml - itune_albedo = 1 ! reduced albedo (w.r.t. MODIS data) over Sahara - tune_gkwake = 1.8 - tune_gkdrag = 0.01 - tune_minsnowfrac = 0.3 -/ - -! output_nml: specifies an output stream -------------------------------------- -&output_nml - filetype = 4 ! output format: 2=GRIB2, 4=NETCDFv2 - dom = 1 ! write domain 1 only - output_bounds = 0., 10000000., 3600. ! start, end, increment - steps_per_file = 1 ! number of steps per file - mode = 1 ! 1: forecast mode (relative t-axis), 2: climate mode (absolute t-axis) - include_last = .TRUE. - output_filename = 'ICON-ART-OEM' - filename_format = '{cfg.icon_output}/_DOM_' ! file name base - steps_per_file_inclfirst = .FALSE. - output_grid = .TRUE. - remap = 1 ! 1: remap to lat-lon grid - !north_pole = -170.,40. ! definition of north_pole for rotated lat-lon grid - reg_lon_def = -16.0,0.13,36.0 ! - reg_lat_def = 32.0,0.12,74.0 ! - ml_varlist = 'group:PBL_VARS', - 'group:ATMO_ML_VARS', - 'group:precip_vars', - 'group:land_vars', - 'group:nh_prog_vars', - 'z_mc', 'z_ifc', - 'group:ART_CHEMISTRY', - 'group:ART_DIAGNOSTICS', - 'group:ART_PASSIVE', - 'group:ART_AEROSOL' -/ - -! radiation_nml: radiation scheme --------------------------------------------- -&radiation_nml - irad_o3 = 7 ! ozone climatology - irad_aero = 6 ! aerosols - albedo_type = 2 ! type of surface albedo - vmr_co2 = 390.e-06 - vmr_ch4 = 1800.e-09 - vmr_n2o = 322.0e-09 - vmr_o2 = 0.20946 - vmr_cfc11 = 240.e-12 - vmr_cfc12 = 532.e-12 -/ - -! sleve_nml: vertical level specification ------------------------------------- -&sleve_nml - min_lay_thckn = 20.0 ! layer thickness of lowermost layer - top_height = 23000.0 ! height of model top - stretch_fac = 0.65 ! stretching factor to vary distribution of model levels - decay_scale_1 = 4000.0 ! decay scale of large-scale topography component - decay_scale_2 = 2500.0 ! decay scale of small-scale topography component - decay_exp = 1.2 ! exponent of decay function - flat_height = 16000.0 ! height above which the coordinate surfaces are flat -/ - -! transport_nml: tracer transport --------------------------------------------- -&transport_nml - npassive_tracer = 0 ! number of additional passive tracers - ivadv_tracer = 3, 3, 3, 3, 3, 3 ! tracer specific method to compute vertical advection - itype_hlimit = 3, 4, 4, 4, 4, 4 ! type of limiter for horizontal transport - ihadv_tracer = 52, 2, 2, 2, 2, 22 ! tracer specific method to compute horizontal advection - llsq_svd = .TRUE. ! use SV decomposition for least squares design matrix -/ - -! turbdiff_nml: turbulent diffusion ------------------------------------------- -&turbdiff_nml - tkhmin = 0.75 ! scaling factor for minimum vertical diffusion coefficient - tkmmin = 0.75 ! scaling factor for minimum vertical diffusion coefficient - pat_len = 750.0 ! effective length scale of thermal surface patterns - c_diff = 0.2 ! length scale factor for vertical diffusion of TKE - rat_sea = 7.5 ! controls laminar resistance for sea surface - ltkesso = .TRUE. ! consider TKE-production by sub-grid SSO wakes - frcsmot = 0.2 ! these 2 switches together apply vertical smoothing of the TKE source terms - imode_frcsmot = 2 ! in the tropics (only), which reduces the moist bias in the tropical lower troposphere - itype_sher = 3 ! type of shear forcing used in turbulence - ltkeshs = .TRUE. ! include correction term for coarse grids in hor. shear production term - a_hshr = 2.0 ! length scale factor for separated horizontal shear mode - icldm_turb = 1 ! mode of cloud water representation in turbulence - ldiff_qi = .TRUE. -/ - -EOF - -# ---------------------------------------------------------------------- -# run the model! -# ---------------------------------------------------------------------- - srun ./icon.exe diff --git a/cases/icon-art-test/icontools_remap_00_lbc_runjob.cfg b/cases/icon-art-test/icontools_remap_00_lbc_runjob.cfg deleted file mode 100755 index 4315e042..00000000 --- a/cases/icon-art-test/icontools_remap_00_lbc_runjob.cfg +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# PART I: Create auxiliary grid file which contains only the cells of the -# boundary zone. -#----------------------------------------------------------------------------- -cat > NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} << EOF_1 -&iconsub_nml - grid_filename = '{cfg.dynamics_grid_filename}', - output_type = 4, - lwrite_grid = .TRUE., -/ -&subarea_nml - ORDER = "{cfg.lateral_boundary_grid_order}", - grf_info_file = '{cfg.dynamics_grid_filename}', - min_refin_c_ctrl = 1 - max_refin_c_ctrl = 14 -/ -EOF_1 - -srun -n 1 {cfg.iconsub_bin} \ - --nml NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} 2>&1 - -#----------------------------------------------------------------------------- -# PART II: Extract boundary data -#----------------------------------------------------------------------------- -rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* - -set +x -cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF -! -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "U" - outputname = "U" - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "V" - outputname = "V" - intp_method = 3 -/ -&input_field_nml ! vertical velocity - inputname = "OMEGA" - outputname = "W" - code = 135 - intp_method = 3 -/ -&input_field_nml ! surface pressure - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -&input_field_nml ! geopotential - inputname = "Z" - outputname = "GEOSP" - code = 129 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "QV" - code = 133 - intp_method = 3 -/ -&input_field_nml ! cloud liquid water content - inputname = "CLWC" - outputname = "QC" - code = 246 - intp_method = 3 -/ -&input_field_nml ! cloud ice water content - inputname = "CIWC" - outputname = "QI" - code = 247 - intp_method = 3 -/ -&input_field_nml ! rain water content - inputname = "CRWC" - outputname = "QR" - code = 75 - intp_method = 3 -/ -&input_field_nml ! snow water content - inputname = "CSWC" - outputname = "QS" - code = 76 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -echo "DATAFILELIST is {datafile_list}" -for datafilename in {datafile_list} ; do - datafile="${{datafilename##*/}}" # get filename without path - outdatafile=${{datafile%.*}} # get filename without suffix - cat > NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} << EOF_2C -&remap_nml - in_grid_filename = '{cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix}' - in_filename = '{cfg.input_root_meteo}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.lateral_boundary_grid_scratch}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}_lbc.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -! ncstorage_file = "ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}" -/ -EOF_2C - - srun -n 1 {cfg.iconremap_bin} -q \ - --remap_nml NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} 2>&1 - -done - -#----------------------------------------------------------------------------- -# clean-up - -rm -f nml.log -rm -f NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- - diff --git a/cases/icon-art-test/icontools_remap_ic_runjob.cfg b/cases/icon-art-test/icontools_remap_ic_runjob.cfg deleted file mode 100755 index e39ef547..00000000 --- a/cases/icon-art-test/icontools_remap_ic_runjob.cfg +++ /dev/null @@ -1,236 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# Remap inital data onto local (limited-area) grid -#----------------------------------------------------------------------------- -cat > NAMELIST_ICONREMAP_FIELDS << EOF -! -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "U" - outputname = "U" - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "V" - outputname = "V" - intp_method = 3 -/ -&input_field_nml ! vertical velocity - inputname = "OMEGA" - outputname = "W" - code = 135 - intp_method = 3 -/ -&input_field_nml ! surface pressure - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -&input_field_nml ! geopotential - inputname = "Z" - outputname = "GEOSP" - code = 129 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "QV" - code = 133 - intp_method = 3 -/ -&input_field_nml ! cloud liquid water content - inputname = "CLWC" - outputname = "QC" - code = 246 - intp_method = 3 -/ -&input_field_nml ! cloud ice water content - inputname = "CIWC" - outputname = "QI" - code = 247 - intp_method = 3 -/ -&input_field_nml ! rain water content - inputname = "CRWC" - outputname = "QR" - code = 75 - intp_method = 3 -/ -&input_field_nml ! snow water content - inputname = "CSWC" - outputname = "QS" - code = 76 - intp_method = 3 -/ -&input_field_nml ! snow temperature - inputname = "TSN" - outputname = "T_SNOW" - code = 238 - intp_method = 3 -/ -&input_field_nml ! water content of snow - inputname = "SD" - outputname = "W_SNOW" - code = 141 - intp_method = 3 -/ -&input_field_nml ! density of snow - inputname = "RSN" - outputname = "RHO_SNOW" - code = 33 - intp_method = 3 -/ -&input_field_nml ! snow albedo - inputname = "ASN" - outputname = "ALB_SNOW" - code = 32 - intp_method = 3 -/ -&input_field_nml ! skin temperature - inputname = "SKT" - outputname = "SKT" - code = 235 - intp_method = 3 -/ -&input_field_nml ! sea surface temperature - inputname = "SST" - outputname = "SST" - code = 34 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 1 - inputname = "STL1" - outputname = "STL1" - code = 139 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 2 - inputname = "STL2" - outputname = "STL2" - code = 170 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 3 - inputname = "STL3" - outputname = "STL3" - code = 183 - intp_method = 3 -/ -&input_field_nml ! soil temperature level 4 - inputname = "STL4" - outputname = "STL4" - code = 236 - intp_method = 3 -/ -&input_field_nml ! sea-ice cover - inputname = "CI" - outputname = "CI" - code = 31 - intp_method = 3 -/ -&input_field_nml ! water cont. of interception storage - inputname = "SRC" - outputname = "W_I" - code = 198 - intp_method = 3 -/ -&input_field_nml ! surface roughness - inputname = "SR" - outputname = "Z0" - code = 173 - intp_method = 3 -/ -&input_field_nml ! Land/sea mask - inputname = "LSM" - outputname = "LSM" - code = 172 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 1 - inputname = "SWVL1" - outputname = "SMIL1" - code = 80 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 2 - inputname = "SWVL2" - outputname = "SMIL2" - code = 81 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 3 - inputname = "SWVL3" - outputname = "SMIL3" - code = 82 - intp_method = 3 -/ -&input_field_nml ! soil moisture index layer 4 - inputname = "SWVL4" - outputname = "SMIL4" - code = 83 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -datafilename={cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix} -datafile="${{datafilename##*/}}" # get filename without path -outdatafile=${{datafile%.*}} # get filename without suffix - -# create ICON master namelist -# ------------------------ -# For a complete list see Namelist_overview and Namelist_overview.pdf - -cat > NAMELIST_ICONREMAP << EOF -&remap_nml - in_grid_filename = '{cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix}' - in_filename = '{cfg.input_root_meteo}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.dynamics_grid_filename}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -/ -EOF - -srun -n 1 {cfg.iconremap_bin} \ - -vvvvv -q --remap_nml NAMELIST_ICONREMAP \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS 2>&1 - - -#----------------------------------------------------------------------------- -# clean-up - -rm -f ncstorage.tmp* -rm -f nml.log NAMELIST_SUB NAMELIST_ICONREMAP NAMELIST_ICONREMAP_FIELDS - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- diff --git a/cases/icon-art-test/icontools_remap_lbc_rest_runjob.cfg b/cases/icon-art-test/icontools_remap_lbc_rest_runjob.cfg deleted file mode 100755 index 7bbedc54..00000000 --- a/cases/icon-art-test/icontools_remap_lbc_rest_runjob.cfg +++ /dev/null @@ -1,125 +0,0 @@ -#!/usr/bin/env bash -#SBATCH --job-name="{cfg.casename}_{cfg.inidate_yyyymmddhh}_{cfg.forecasttime}" -#SBATCH --account={cfg.compute_account} -#SBATCH --chdir={cfg.icon_work} -#SBATCH --partition={cfg.compute_queue} -#SBATCH --constraint={cfg.constraint} -#SBATCH --nodes=1 -#SBATCH --ntasks-per-core=1 -#SBATCH --ntasks-per-node={cfg.ntasks_per_node} -#SBATCH --cpus-per-task=1 -#SBATCH --output={logfile} -#SBATCH --open-mode=append - -ulimit -s unlimited - -set -x - -export ECCODES_DEFINITION_PATH=/store/empa/em05/eccodes_definitions/definitions.edzw-2.12.5-2:/store/empa/em05/easybuild/software/ecCodes/2.12.5-CrayGNU-20.08/share/eccodes/definitions - -#----------------------------------------------------------------------------- -# Extract boundary data -#----------------------------------------------------------------------------- - -rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* - -cat > NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} << EOF -! -&input_field_nml ! temperature - inputname = "T" - outputname = "T" - code = 130 - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. u - inputname = "U" - outputname = "U" - intp_method = 3 -/ -&input_field_nml ! horiz. wind comp. v - inputname = "V" - outputname = "V" - intp_method = 3 -/ -&input_field_nml ! vertical velocity - inputname = "OMEGA" - outputname = "W" - code = 135 - intp_method = 3 -/ -&input_field_nml ! surface pressure - inputname = "LNSP" - outputname = "LNPS" - code = 152 - intp_method = 3 -/ -&input_field_nml ! specific humidity - inputname = "QV" - outputname = "QV" - code = 133 - intp_method = 3 -/ -&input_field_nml ! cloud liquid water content - inputname = "CLWC" - outputname = "QC" - code = 246 - intp_method = 3 -/ -&input_field_nml ! cloud ice water content - inputname = "CIWC" - outputname = "QI" - code = 247 - intp_method = 3 -/ -&input_field_nml ! rain water content - inputname = "CRWC" - outputname = "QR" - code = 75 - intp_method = 3 -/ -&input_field_nml ! snow water content - inputname = "CSWC" - outputname = "QS" - code = 76 - intp_method = 3 -/ -EOF - -#----------------------------------------------------------------------------- -# loop over file list: - -echo "DATAFILELIST is {datafile_list_rest}" -for datafilename in {datafile_list_rest} ; do - datafile="${{datafilename##*/}}" # get filename without path - outdatafile=${{datafile%.*}} # get filename without suffix - cat > NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} << EOF_2C -&remap_nml - in_grid_filename = '{cfg.input_root_meteo}/{cfg.meteo_prefix}{cfg.inidate_yyyymmddhh}{cfg.meteo_suffix}' - in_filename = '{cfg.input_root_meteo}/${{datafile}}' - in_type = 1 - out_grid_filename = '{cfg.lateral_boundary_grid_scratch}' - out_filename = '{cfg.icon_input_icbc}/${{outdatafile}}_lbc.nc' - out_type = 2 - out_filetype = 4 - l_have3dbuffer = .false. -! ncstorage_file = "ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}" -/ -EOF_2C - - srun -n 1 {cfg.iconremap_bin} -q \ - --remap_nml NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} \ - --input_field_nml NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} 2>&1 - -done - -#----------------------------------------------------------------------------- -# clean-up - -#rm -f ncstorage.tmp_lbc_{cfg.inidate_yyyymmddhh}* -rm -f nml.log -rm -f NAMELIST_ICONSUB_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_lbc_{cfg.inidate_yyyymmddhh} NAMELIST_ICONREMAP_FIELDS_{cfg.inidate_yyyymmddhh} - -#----------------------------------------------------------------------------- -exit -#----------------------------------------------------------------------------- - diff --git a/cases/icon-test/config.py b/cases/icon-test/config.py index 23f54730..81f15118 100644 --- a/cases/icon-test/config.py +++ b/cases/icon-test/config.py @@ -13,20 +13,17 @@ else: compute_account = os.popen("id -gn").read().splitlines()[0] compute_host = 'daint' -compute_queue = 'debug' # 'normal' / 'debug' +compute_queue = 'normal' constraint = 'gpu' # 'mc' / 'gpu' -target = 'icon' +model = 'icon' restart_step = 24 # hours -if constraint == 'gpu': - ntasks_per_node = 12 -elif constraint == 'mc': - ntasks_per_node = 36 +# Number of tasks per node +ntasks_per_node = 36 if constraint == 'mc' else 12 -# case name = pathname in cases/ -path = os.path.realpath(__file__) -casename = os.path.basename(os.path.dirname(path)) +# Case name = pathname in cases/ +casename = os.path.basename(os.path.dirname(os.path.realpath(__file__))) # Root directory of the sourcecode of the chain (where run_chain.py is) chain_src_dir = os.getcwd() @@ -56,27 +53,31 @@ # Input data for runscript---------------------------------------------------- # Grid + input_root_grid = os.path.join(input_root, 'grid') -radiation_grid_filename = os.path.join(input_root_grid, - "VERIFY_DOM_DOM01.parent.nc") -dynamics_grid_filename = os.path.join(input_root_grid, "VERIFY_DOM_DOM01.nc") -map_file_latbc = os.path.join(input_root_grid, "map_file.latbc") -extpar_filename = os.path.join( - input_root_grid, "external_parameter_icon_VERIFY_DOM_DOM01_tiles.nc") input_root_rad = os.path.join(input_root, 'rad') -cldopt_filename = os.path.join(input_root_rad, 'rrtm_cldopt.nc') -lrtm_filename = os.path.join(input_root_rad, 'rrtmg_lw.nc') - input_root_mapping = os.path.join(input_root, 'mapping') -map_file_ana = os.path.join(input_root_mapping, "map_file.ana") -# File names ----------------------------------------------------------------- +input_files = { + 'radiation_grid_filename': ['VERIFY_DOM_DOM01.parent.nc', 'grid'], + 'dynamics_grid_filename': ['VERIFY_DOM_DOM01.nc', 'grid'], + 'map_file_latbc': ['map_file.latbc', 'grid'], + 'lateral_boundary_grid': ['lateral_boundary.grid.nc', 'grid'], + 'extpar_filename': + ['external_parameter_icon_VERIFY_DOM_DOM01_tiles.nc', 'grid'], + 'cldopt_filename': ['rrtm_cldopt.nc', 'rad'], + 'lrtm_filename': ['rrtmg_lw.nc', 'rad'], + 'map_file_ana': ['map_file.ana', 'mapping'], +} + latbc_filename = "ifs_201801_lbc.nc" inidata_filename = "ifs_init_2018010100.nc" output_filename = "NWP_LAM" filename_format = "_DOM_" +lateral_boundary_grid_order = 'lateral_boundary' + # SIMULATION ================================================================= # ICON ----------------------------------------------------------------------- # Read COSMO spec @@ -100,12 +101,9 @@ if compute_queue == "normal": icon_walltime = "00:30:00" icon_np_tot = 12 -elif compute_queue == "debug": +else: icon_walltime = "00:30:00" icon_np_tot = 10 -else: - logging.error("Unknown queue name: %s" % compute_queue) - sys.exit(1) # POST-PROCESSING ============================================================ # REDUCE_OUTPUT -------------------------------------------------------------- diff --git a/config/models.yaml b/config/models.yaml new file mode 100644 index 00000000..a01c0854 --- /dev/null +++ b/config/models.yaml @@ -0,0 +1,31 @@ +models: + cosmo: + jobs: ['prepare_data', 'int2lm', 'cosmo', 'post_cosmo'] + variants: ['spinup'] + features: ['restart'] + cosmo-ghg: + jobs: ['prepare_data', 'emissions', 'biofluxes', 'oem', 'online_vprm', + 'int2lm', 'post_int2lm', 'cosmo', 'post_cosmo'] + variants: ['spinup'] + features: ['restart', 'tracers'] + cosmo-art: + jobs: ['prepare_data', 'emissions', 'obs_nudging', 'photo_rate', + 'int2lm', 'cosmo', 'post_cosmo'] + variants: ['spinup'] + features: ['nesting'] + icon: + jobs: ['prepare_data', 'icon'] + variants: [] + features: ['restart'] + icon-art: + jobs: ['prepare_data', 'icon'] + variants: [] + features: ['restart'] + icon-art-global: + jobs: ['prepare_data', 'icon'] + variants: [] + features: ['restart'] + icon-art-oem: + jobs: ['prepare_data', 'icon'] + variants: [] + features: ['restart'] diff --git a/jenkins/Jenkinsfile b/jenkins/Jenkinsfile index fcdd0e7e..82747a3d 100644 --- a/jenkins/Jenkinsfile +++ b/jenkins/Jenkinsfile @@ -95,6 +95,19 @@ pipeline { } } } + stage('Build ICON-ART') { + steps { + sh '''source ${WORKSPACE}/miniconda/etc/profile.d/conda.sh + conda activate proc-chain + ./jenkins/scripts/build_icon-art.sh''' + } + post { + failure { + echo 'Cleaning up workspace' + deleteDir() + } + } + } } } stage('Test COSMO-GHG') { @@ -105,7 +118,7 @@ pipeline { sh '''source ${WORKSPACE}/miniconda/etc/profile.d/conda.sh conda activate proc-chain . ${WORKSPACE}/src/spack-c2sm/setup-env.sh - python run_chain.py cosmo-ghg-11km-test 2015-01-01 0 24 -f''' + ./jenkins/scripts/test_cosmo-ghg.sh''' } post { failure { @@ -122,7 +135,41 @@ pipeline { sh '''source ${WORKSPACE}/miniconda/etc/profile.d/conda.sh conda activate proc-chain . ${WORKSPACE}/src/spack-c2sm/setup-env.sh - python run_chain.py icon-test 2018-01-01 0 24 -j prepare_data icon -f''' + ./jenkins/scripts/test_icon.sh''' + } + post { + failure { + echo 'Cleaning up workspace' + deleteDir() + } + } + } + stage('Test ICON-ART (OEM)') { + environment { + PATH = "${WORKSPACE}/miniconda/bin:$PATH" + } + steps { + sh '''source ${WORKSPACE}/miniconda/etc/profile.d/conda.sh + conda activate proc-chain + . ${WORKSPACE}/src/spack-c2sm/setup-env.sh + ./jenkins/scripts/test_icon-art-oem.sh''' + } + post { + failure { + echo 'Cleaning up workspace' + deleteDir() + } + } + } + stage('Test ICON-ART (global)') { + environment { + PATH = "${WORKSPACE}/miniconda/bin:$PATH" + } + steps { + sh '''source ${WORKSPACE}/miniconda/etc/profile.d/conda.sh + conda activate proc-chain + . ${WORKSPACE}/src/spack-c2sm/setup-env.sh + ./jenkins/scripts/test_icon-art-global.sh''' } post { failure { diff --git a/jenkins/scripts/build_icon-art.sh b/jenkins/scripts/build_icon-art.sh new file mode 100755 index 00000000..6d228e99 --- /dev/null +++ b/jenkins/scripts/build_icon-art.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e -x + +function error { + echo "*** Error: $@" >&2 + exit 1 +} + +# Check if script is called correctly +[[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" + +BRANCH=art +GIT_REMOTE=git@github.com:C2SM/icon.git + +pushd src +# Activate spack +. spack-c2sm/setup-env.sh + +# Remove icon-art folder (if existing) +rm -fr icon-art + +# Clone icon-art +git clone --depth 1 --recurse-submodules --shallow-submodules -b ${BRANCH} ${GIT_REMOTE} icon-art + pushd icon-art + spack env activate -p -d config/cscs/spack/v0.18.1.7/art_daint_cpu_nvhpc + spack install -u build + popd +popd diff --git a/jenkins/scripts/get_data.sh b/jenkins/scripts/get_data.sh index 30e4228f..19b94def 100755 --- a/jenkins/scripts/get_data.sh +++ b/jenkins/scripts/get_data.sh @@ -11,8 +11,8 @@ function error { [[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" mkdir -p input -cd input -wget ftp://iacftp.ethz.ch/pub_read/mjaehn/input_processing-chain/input_processing-chain.tgz -tar -xvzf input_processing-chain.tgz -rm -f input_processing-chain.tgz -cd .. +pushd input + wget ftp://iacftp.ethz.ch/pub_read/mjaehn/input_processing-chain.tgz + tar -xvzf input_processing-chain.tgz + rm -f input_processing-chain.tgz +popd diff --git a/jenkins/scripts/jenkins.sh b/jenkins/scripts/jenkins.sh index a416b0b3..d922344c 100755 --- a/jenkins/scripts/jenkins.sh +++ b/jenkins/scripts/jenkins.sh @@ -1,5 +1,21 @@ #!/bin/bash +# Argument parsing +force_execution=false + +while [[ "$#" -gt 0 ]]; do + case $1 in + -f|--force) + force_execution=true + shift + ;; + *) + echo "Unknown parameter: $1" + exit 1 + ;; + esac +done + set -e -x # Activate conda environment @@ -17,7 +33,7 @@ fi # Preparation size=$(du -sb input | awk '{print $1}') -if [[ $size -gt 40000000000 ]]; then +if [[ $size -gt 12000000000 ]]; then echo input data already present - skipping download... else echo downloading input data... @@ -48,17 +64,45 @@ else ./jenkins/scripts/build_icon.sh fi +# Build ICON-ART +if [[ -f src/icon-art/bin/icon ]]; then + echo icon-art executable already exists - skipping build. +else + echo building icon-art... + ./jenkins/scripts/build_icon-art.sh +fi + # Test COSMO-GHG -if [[ -f work/cosmo-ghg-11km-test/2015010112_-6_12/checkpoints/finished/post_cosmo ]]; then +if [[ -f work/cosmo-ghg-11km-test/2015010112_-6_12/checkpoints/finished/post_cosmo && "$force_execution" == false ]]; then echo cosmo-ghg test case already finished - skipping test. else echo running cosmo-ghg test case... - python run_chain.py cosmo-ghg-11km-test 2015-01-01 0 24 -f + ./jenkins/scripts/test_cosmo-ghg.sh fi # Test ICON -echo running icon test case... -python run_chain.py icon-test 2018-01-01 0 24 -j prepare_data icon -f +if [[ -f work/icon-test/2018010100_0_24/checkpoints/finished/icon && "$force_execution" == false ]]; then + echo icon test case already finished - skipping test. +else + echo running icon test case... + ./jenkins/scripts/test_icon.sh +fi + +# Test ICON-ART +if [[ -f work/icon-art-oem-test/2018010100_0_24/checkpoints/finished/icon && "$force_execution" == false ]]; then + echo icon-art test case already finished - skipping test. +else + echo running icon-art-oem test case... + ./jenkins/scripts/test_icon-art-oem.sh +fi + +# Test ICON-ART-GLOBAL +if [[ -f work/icon-art-global-test/2018010100_0_24/checkpoints/finished/icon && "$force_execution" == false ]]; then + echo icon-art-global test case already finished - skipping test. +else + echo running icon-art-global test case... + ./jenkins/scripts/test_icon-art-global.sh +fi # Print success message echo "Success!" diff --git a/jenkins/scripts/setup-spack.sh b/jenkins/scripts/setup-spack.sh index a42fec6f..326672de 100755 --- a/jenkins/scripts/setup-spack.sh +++ b/jenkins/scripts/setup-spack.sh @@ -10,7 +10,7 @@ function error { # Check if script is called correctly [[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" -BRANCH=v0.18.1.5 +BRANCH=main GIT_REMOTE=https://github.com/C2SM/spack-c2sm.git rm -fr src/spack-c2sm diff --git a/jenkins/scripts/test_cosmo-ghg.sh b/jenkins/scripts/test_cosmo-ghg.sh new file mode 100755 index 00000000..4b7a7ba8 --- /dev/null +++ b/jenkins/scripts/test_cosmo-ghg.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e -x + +function error { + echo "*** Error: $@" >&2 + exit 1 +} + +# Check if script is called correctly +[[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" + +python run_chain.py cosmo-ghg-11km-test 2015-01-01 0 24 -f diff --git a/jenkins/scripts/test_icon-art-global.sh b/jenkins/scripts/test_icon-art-global.sh new file mode 100755 index 00000000..3aca4c13 --- /dev/null +++ b/jenkins/scripts/test_icon-art-global.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e -x + +function error { + echo "*** Error: $@" >&2 + exit 1 +} + +# Check if script is called correctly +[[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" + +python run_chain.py icon-art-global-test 2018-01-01 0 24 -j prepare_data icon -f diff --git a/jenkins/scripts/test_icon-art-oem.sh b/jenkins/scripts/test_icon-art-oem.sh new file mode 100755 index 00000000..b2d28fe5 --- /dev/null +++ b/jenkins/scripts/test_icon-art-oem.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e -x + +function error { + echo "*** Error: $@" >&2 + exit 1 +} + +# Check if script is called correctly +[[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" + +python run_chain.py icon-art-oem-test 2018-01-01 0 24 -j prepare_data icon -f diff --git a/jenkins/scripts/test_icon.sh b/jenkins/scripts/test_icon.sh new file mode 100755 index 00000000..e97edbc1 --- /dev/null +++ b/jenkins/scripts/test_icon.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e -x + +function error { + echo "*** Error: $@" >&2 + exit 1 +} + +# Check if script is called correctly +[[ $(git rev-parse --show-toplevel 2>/dev/null) = $(pwd) ]] || error "$0 not launched from toplevel of repository" + +python run_chain.py icon-test 2018-01-01 0 24 -j prepare_data icon -f diff --git a/jobs/__init__.py b/jobs/__init__.py index 22141c94..08cc0cdb 100644 --- a/jobs/__init__.py +++ b/jobs/__init__.py @@ -4,7 +4,7 @@ from . import prepare_data from . import emissions -from . import oae +from . import oem from . import biofluxes from . import int2lm from . import post_int2lm diff --git a/jobs/biofluxes.py b/jobs/biofluxes.py index 2ed99e62..1ff5d1e8 100644 --- a/jobs/biofluxes.py +++ b/jobs/biofluxes.py @@ -20,7 +20,7 @@ from . import tools -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Prepare the biofluxes-files for the simulation. Only necessary for **COSMO** simulations. @@ -39,7 +39,7 @@ def main(starttime, hstart, hstop, cfg): cfg : config-object Object holding all user-configuration parameters as attributes """ - tools.check_target(cfg, tools.Target.COSMOGHG) + tools.check_model(cfg, 'cosmo-ghg') scratch_path = os.path.join(cfg.int2lm_input, 'vprm') @@ -62,6 +62,6 @@ def main(starttime, hstart, hstop, cfg): tools.copy_file(filename, scratch_path) if not os.path.isfile(filename_sc): - loggig.error( + logging.error( "Splitting or copying of GPP or/and RA files to scratch failed." ) diff --git a/jobs/check_output.py b/jobs/check_output.py index 21271901..aefe47f4 100644 --- a/jobs/check_output.py +++ b/jobs/check_output.py @@ -699,7 +699,7 @@ def create_animations(cfg): duration=300) -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Checks output variables whether they are in a phyiscally reasonable range. diff --git a/jobs/cosmo.py b/jobs/cosmo.py index 12f8f5ae..75780dc4 100644 --- a/jobs/cosmo.py +++ b/jobs/cosmo.py @@ -19,7 +19,7 @@ from datetime import datetime, timedelta -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Setup the namelists for a **COSMO** tracer run and submit the job to the queue @@ -143,27 +143,27 @@ def main(starttime, hstart, hstop, cfg): (str(starttime), str(startfiletime))) # No restarts for COSMO-ART and for simulations with spinup - if cfg.target is not tools.Target.COSMOART and \ - cfg.target.subtarget is not tools.Subtarget.SPINUP: + if 'restart' in model_cfg['models'][cfg.model]['features'] and \ + cfg.variant != 'spinup': tools.create_dir(cfg.cosmo_restart_out, "cosmo_restart_out") # Copy cosmo executable - execname = cfg.target.name.lower() + execname = cfg.model.lower() tools.copy_file(cfg.cosmo_bin, os.path.join(cfg.cosmo_work, execname)) setattr(cfg, "execname", execname) # Prepare namelist and submit job tracer_csvfile = os.path.join(cfg.chain_src_dir, 'cases', cfg.casename, 'cosmo_tracers.csv') - if cfg.target is tools.Target.COSMO: + if cfg.model == 'cosmo': namelist_names = ['ORG', 'IO', 'DYN', 'PHY', 'DIA', 'ASS', 'SAT'] - elif cfg.target is tools.Target.COSMOGHG: + elif cfg.model == 'cosmo-ghg': namelist_names = ['AF', 'ORG', 'IO', 'DYN', 'GHG', 'PHY', 'DIA', 'ASS'] - elif cfg.target is tools.Target.COSMOART: + elif cfg.model == 'cosmo-art': namelist_names = [ 'ART', 'ASS', 'DIA', 'DYN', 'EPS', 'INI', 'IO', 'ORG', 'PHY' ] - if hasattr(cfg, 'oae_dir'): + if hasattr(cfg, 'oem_dir'): # When doing online emissions in COSMO-ART, an additional # namelist is required namelist_names += ['OAE'] @@ -174,7 +174,7 @@ def main(starttime, hstart, hstop, cfg): output_file = os.path.join(cfg.cosmo_work, "INPUT_" + section) with open(output_file, "w") as outf: - if cfg.target.subtarget is tools.Subtarget.SPINUP: + if cfg.variant == 'spinup': # no restarts to_write = to_write.format(cfg=cfg, restart_start=12, @@ -190,7 +190,7 @@ def main(starttime, hstart, hstop, cfg): # Append INPUT_GHG namelist with tracer definitions from csv file if os.path.isfile(tracer_csvfile): - if cfg.target is tools.Target.COSMOGHG: + if cfg.model == 'cosmo-ghg': input_ghg_filename = os.path.join(cfg.cosmo_work, 'INPUT_GHG') write_cosmo_input_ghg.main(tracer_csvfile, input_ghg_filename, cfg) diff --git a/jobs/emissions.py b/jobs/emissions.py index 3f6950ad..8e60fd15 100644 --- a/jobs/emissions.py +++ b/jobs/emissions.py @@ -16,12 +16,11 @@ import os import logging -import shutil from . import tools -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Copy emission files to the **int2lm** input directory. Necessary for both **COSMO** and **COSMOART** simulations. @@ -83,5 +82,5 @@ def main(starttime, hstart, hstop, cfg): # convert grid_mapping_name from string (NF90_STRING) to char # (NF90_CHAR) (needed for int2lm to work) - if cfg.target is tools.Target.COSMO: + if cfg.model.startswith('cosmo'): tools.string2char.main(dest_path) diff --git a/jobs/icon.py b/jobs/icon.py index 290a2093..aa684239 100644 --- a/jobs/icon.py +++ b/jobs/icon.py @@ -18,7 +18,7 @@ from datetime import timedelta -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Setup the namelists for an **ICON** tracer run and submit the job to the queue @@ -87,8 +87,7 @@ def main(starttime, hstart, hstop, cfg): exitcode = result.returncode # In case of ICON-ART, ignore the "invalid pointer" error on successful run - if cfg.target is tools.Target.ICONARTOEM or cfg.target is tools.Target.ICONART or \ - cfg.target is tools.Target.ICONARTGLOBAL: + if cfg.model.startswith('icon-art'): if tools.grep("free(): invalid pointer", logfile)['success'] and \ tools.grep("clean-up finished", logfile)['success']: exitcode = 0 diff --git a/jobs/int2lm.py b/jobs/int2lm.py index 015d5346..87855b93 100644 --- a/jobs/int2lm.py +++ b/jobs/int2lm.py @@ -17,7 +17,7 @@ from datetime import datetime -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Setup the namelist for **int2lm** and submit the job to the queue. Necessary for both **COSMO** and **COSMOART** simulations. @@ -77,7 +77,7 @@ def main(starttime, hstart, hstop, cfg): tools.copy_file(extpar_file, extpar_dir) # Copy landuse and plant-functional-type files - if cfg.target is tools.Target.COSMOART: + if cfg.model == 'cosmo-art': lu_file_src = os.path.join(cfg.int2lm_lu_dir, cfg.int2lm_lu_file) lu_file_dst = os.path.join(extpar_dir, 'landuse.nc') tools.copy_file(lu_file_src, lu_file_dst) @@ -86,8 +86,7 @@ def main(starttime, hstart, hstop, cfg): pft_file_dst = os.path.join(extpar_dir, 'pft.nc') tools.copy_file(pft_file_src, pft_file_dst) - # Copy libgrib_api - if cfg.target is tools.Target.COSMOART: + # Copy libgrib_api dest = os.path.join(cfg.int2lm_work, 'libgrib_api') try: # delete so no error when forcing this job diff --git a/jobs/oae.py b/jobs/oae.py deleted file mode 100644 index 58e8e705..00000000 --- a/jobs/oae.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# - -import os -import logging - -from . import tools - - -def main(starttime, hstart, hstop, cfg): - """Copy emission and profile files to the **cosmo** or **icon** input - directory. - - Parameters - ---------- - starttime : datetime-object - The starting date of the simulation - hstart : int - Offset (in hours) of the actual start from the starttime - hstop : int - Length of simulation (in hours) - cfg : config-object - Object holding all user-configuration parameters as attributes - """ - - oae_dir = cfg.oae_dir - oae_gridded_emissions_nc = os.path.join(oae_dir, - cfg.oae_gridded_emissions_nc) - oae_vertical_profiles_nc = os.path.join(oae_dir, - cfg.oae_vertical_profiles_nc) - - # Temporal profiles can be given as hourofday, dayofweek, monthofyear - # AND/OR as hourofyear. We copy all files indicated in cfg, but make - # sure at least one type is present - hod_tps = True - hoy_tps = True - try: - oae_hourofday_nc = os.path.join(oae_dir, cfg.oae_hourofday_nc) - oae_dayofweek_nc = os.path.join(oae_dir, cfg.oae_dayofweek_nc) - oae_monthofyear_nc = os.path.join(oae_dir, cfg.oae_monthofyear_nc) - except AttributeError: - hod_tps = False - try: - oae_hourofyear_nc = os.path.join(oae_dir, cfg.oae_hourofyear_nc) - except AttributeError: - hoy_tps = False - - if not (hod_tps or hoy_tps): - raise RuntimeError("At least one of (hod/dow/moy) or (hoy) netcdfs " - " have to be given for online emissions") - - if cfg.target is tools.Target.ICON or cfg.target is tools.Target.ICONART or \ - cfg.target is tools.Target.ICONARTOEM: - input_dir = cfg.icon_input - else: - input_dir = cfg.cosmo_input - dest_dir = os.path.join(input_dir, "oae") - tools.create_dir(dest_dir, "online emissions input") - - logging.info("Copying oae files from {} to {}".format(oae_dir, dest_dir)) - - if hod_tps: - tools.copy_file(oae_gridded_emissions_nc, - os.path.join(dest_dir, cfg.oae_gridded_emissions_nc)) - tools.copy_file(oae_vertical_profiles_nc, - os.path.join(dest_dir, cfg.oae_vertical_profiles_nc)) - tools.copy_file(oae_hourofday_nc, - os.path.join(dest_dir, cfg.oae_hourofday_nc)) - tools.copy_file(oae_dayofweek_nc, - os.path.join(dest_dir, cfg.oae_dayofweek_nc)) - tools.copy_file(oae_monthofyear_nc, - os.path.join(dest_dir, cfg.oae_monthofyear_nc)) - if hoy_tps: - tools.copy_file(oae_hourofyear_nc, - os.path.join(dest_dir, cfg.oae_hourofyear_nc)) - - # Additional files for ICON simulations - if hasattr(cfg, 'oae_ens_reg_nc'): - tools.copy_file(os.path.join(oae_dir, cfg.oae_ens_reg_nc), - os.path.join(dest_dir, cfg.oae_ens_reg_nc)) - if hasattr(cfg, 'oae_ens_lambda_nc'): - tools.copy_file(os.path.join(oae_dir, cfg.oae_ens_lambda_nc), - os.path.join(dest_dir, cfg.oae_ens_lambda_nc)) diff --git a/jobs/obs_nudging.py b/jobs/obs_nudging.py index 2ea1d90a..7d217daa 100644 --- a/jobs/obs_nudging.py +++ b/jobs/obs_nudging.py @@ -9,7 +9,7 @@ from . import tools -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Copy and rename the obs_nudging files to the **COSMO** input directory. In the folder ``cfg.obs_nudging_dir``, the files are saved in the format diff --git a/jobs/octe.py b/jobs/octe.py index 1057b59f..ed3963c8 100644 --- a/jobs/octe.py +++ b/jobs/octe.py @@ -161,7 +161,7 @@ def perturb_bgs_in_dir(lambdas_nc, directory): entry.name)) -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Copy necessary input files for **COSMO** and perturb BG. Copies the NetCDF-files found at cfg.octe_maps and cfg.octe_lambdas to diff --git a/jobs/oem.py b/jobs/oem.py new file mode 100644 index 00000000..a7680267 --- /dev/null +++ b/jobs/oem.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# + +import os +import logging + +from . import tools + + +def main(starttime, hstart, hstop, cfg, model_cfg): + """Copy emission and profile files to the **cosmo** or **icon** input + directory. + + Parameters + ---------- + starttime : datetime-object + The starting date of the simulation + hstart : int + Offset (in hours) of the actual start from the starttime + hstop : int + Length of simulation (in hours) + cfg : config-object + Object holding all user-configuration parameters as attributes + """ + + oem_dir = cfg.oem_dir + oem_gridded_emissions_nc = os.path.join(oem_dir, + cfg.oem_gridded_emissions_nc) + oem_vertical_profiles_nc = os.path.join(oem_dir, + cfg.oem_vertical_profiles_nc) + + # Temporal profiles can be given as hourofday, dayofweek, monthofyear + # AND/OR as hourofyear. We copy all files indicated in cfg, but make + # sure at least one type is present + hod_tps = True + hoy_tps = True + try: + oem_hourofday_nc = os.path.join(oem_dir, cfg.oem_hourofday_nc) + oem_dayofweek_nc = os.path.join(oem_dir, cfg.oem_dayofweek_nc) + oem_monthofyear_nc = os.path.join(oem_dir, cfg.oem_monthofyear_nc) + except AttributeError: + hod_tps = False + try: + oem_hourofyear_nc = os.path.join(oem_dir, cfg.oem_hourofyear_nc) + except AttributeError: + hoy_tps = False + + if not (hod_tps or hoy_tps): + raise RuntimeError("At least one of (hod/dow/moy) or (hoy) netcdfs " + " have to be given for online emissions") + + if cfg.model.startswith('icon'): + input_dir = cfg.icon_input + else: + input_dir = cfg.cosmo_input + dest_dir = os.path.join(input_dir, "oem") + tools.create_dir(dest_dir, "online emissions input") + + logging.info("Copying oem files from {} to {}".format(oem_dir, dest_dir)) + + if hod_tps: + tools.copy_file(oem_gridded_emissions_nc, + os.path.join(dest_dir, cfg.oem_gridded_emissions_nc)) + tools.copy_file(oem_vertical_profiles_nc, + os.path.join(dest_dir, cfg.oem_vertical_profiles_nc)) + tools.copy_file(oem_hourofday_nc, + os.path.join(dest_dir, cfg.oem_hourofday_nc)) + tools.copy_file(oem_dayofweek_nc, + os.path.join(dest_dir, cfg.oem_dayofweek_nc)) + tools.copy_file(oem_monthofyear_nc, + os.path.join(dest_dir, cfg.oem_monthofyear_nc)) + if hoy_tps: + tools.copy_file(oem_hourofyear_nc, + os.path.join(dest_dir, cfg.oem_hourofyear_nc)) + + # Additional files for ICON simulations + if hasattr(cfg, 'oem_ens_reg_nc'): + tools.copy_file(os.path.join(oem_dir, cfg.oem_ens_reg_nc), + os.path.join(dest_dir, cfg.oem_ens_reg_nc)) + if hasattr(cfg, 'oem_ens_lambda_nc'): + tools.copy_file(os.path.join(oem_dir, cfg.oem_ens_lambda_nc), + os.path.join(dest_dir, cfg.oem_ens_lambda_nc)) diff --git a/jobs/online_vprm.py b/jobs/online_vprm.py index 996f9481..fe718043 100644 --- a/jobs/online_vprm.py +++ b/jobs/online_vprm.py @@ -9,7 +9,7 @@ from . import tools -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Copy MODIS surface reflectance data and vegatation class fraction file to the **cosmo** input directory. diff --git a/jobs/photo_rate.py b/jobs/photo_rate.py index 8c3235fd..0d65a4d1 100644 --- a/jobs/photo_rate.py +++ b/jobs/photo_rate.py @@ -8,7 +8,7 @@ from . import tools -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Copy photolysis-rate file to the **COSMOART** input directory. Only necessary for **COSMOART** simulations. @@ -27,7 +27,7 @@ def main(starttime, hstart, hstop, cfg): cfg : config-object Object holding all user-configuration parameters as attributes """ - tools.check_target(cfg, tools.Target.COSMOART) + tools.check_model(cfg, 'cosmo-art') logging.info("Copying photolysis-rate file from {} to {}".format( cfg.photo_rate_file, diff --git a/jobs/post_cosmo.py b/jobs/post_cosmo.py index b6dcfcea..32a26db2 100644 --- a/jobs/post_cosmo.py +++ b/jobs/post_cosmo.py @@ -51,7 +51,7 @@ def runscript_commands_template(): ]) -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Copy the output of a **COSMO**-run to a user-defined position. Write a runscript to copy all files (**COSMO** settings & output, diff --git a/jobs/post_int2lm.py b/jobs/post_int2lm.py index 8a7a58b1..57cffbf6 100644 --- a/jobs/post_int2lm.py +++ b/jobs/post_int2lm.py @@ -15,7 +15,7 @@ from . import tools -def main(start_time, hstart, hstop, cfg): +def main(start_time, hstart, hstop, cfg, model_cfg): """Combine multiple **int2lm** tracer-output files into a single one for **COSMO**. @@ -40,7 +40,7 @@ def main(start_time, hstart, hstop, cfg): cfg : config-object Object holding all user-configuration parameters as attributes """ - tools.check_target(cfg, tools.Target.COSMOGHG) + tools.check_model(cfg, 'cosmo-ghg') int2lm_output = cfg.int2lm_output inidate_int2lm_yyyymmddhh = cfg.inidate_int2lm_yyyymmddhh @@ -90,7 +90,7 @@ def main(start_time, hstart, hstop, cfg): logging.info("OK") # Meteo spinup simulation with tracer recycling - if cfg.target.subtarget is tools.Subtarget.SPINUP and \ + if cfg.variant == 'spinup' and \ hasattr(cfg, 'post_int2lm_species_spinup') and not cfg.first_one: var_list = cfg.post_int2lm_species_spinup logging.info( diff --git a/jobs/prepare_data.py b/jobs/prepare_data.py index d2d5921c..264afde0 100644 --- a/jobs/prepare_data.py +++ b/jobs/prepare_data.py @@ -31,15 +31,16 @@ import subprocess from datetime import timedelta import xarray as xr +import numpy as np from . import tools from .tools.interpolate_data import create_oh_for_restart, create_oh_for_inicond from .tools.fetch_external_data import fetch_era5, fetch_era5_nudging from calendar import monthrange -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """ - **ICON** (if ``cfg.target`` is ``tools.Target.ICON``) + **ICON** (if ``cfg.model`` is ``tools.Target.ICON``) Create necessary directories ``cfg.icon_input_icbc`` and ''cfg.icon_work'' @@ -79,9 +80,7 @@ def main(starttime, hstart, hstop, cfg): Object holding all user-configuration parameters as attributes """ - if cfg.target is tools.Target.ICON or cfg.target is tools.Target.ICONART or \ - cfg.target is tools.Target.ICONARTOEM or cfg.target is tools.Target.ICONARTGLOBAL: - + if cfg.model.startswith('icon'): logging.info('ICON input data (IC/BC)') starttime_real = starttime + timedelta(hours=hstart) @@ -91,85 +90,27 @@ def main(starttime, hstart, hstop, cfg): #----------------------------------------------------- tools.create_dir(cfg.icon_work, "icon_work") tools.create_dir(cfg.icon_input_icbc, "icon_input_icbc") - tools.create_dir(cfg.icon_input_grid, "icon_input_grid") - tools.create_dir(cfg.icon_input_mapping, "icon_input_mapping") - tools.create_dir(cfg.icon_input_oae, "icon_input_oem") - tools.create_dir(cfg.icon_input_rad, "icon_input_rad") tools.create_dir(cfg.icon_output, "icon_output") tools.create_dir(cfg.icon_restart_out, "icon_restart_out") #----------------------------------------------------- - # Copy files + # Create input directories and copy files #----------------------------------------------------- - # Copy grid files - tools.copy_file(cfg.radiation_grid_filename, - cfg.radiation_grid_filename_scratch, - output_log=True) - tools.copy_file(cfg.dynamics_grid_filename, - cfg.dynamics_grid_filename_scratch, - output_log=True) - - tools.copy_file(cfg.extpar_filename, - cfg.extpar_filename_scratch, - output_log=True) - - if cfg.target is not tools.Target.ICONARTGLOBAL: - tools.copy_file(cfg.map_file_latbc, - cfg.map_file_latbc_scratch, - output_log=True) - - # Copy radiation files - tools.copy_file(cfg.cldopt_filename, - cfg.cldopt_filename_scratch, - output_log=True) - tools.copy_file(cfg.lrtm_filename, - cfg.lrtm_filename_scratch, - output_log=True) - - # Copy mapping file - if cfg.target is not tools.Target.ICONARTGLOBAL: - tools.copy_file(cfg.map_file_ana, - cfg.map_file_ana_scratch, + for varname in cfg.input_files: + file_info = cfg.input_files[varname] + input_dir = os.path.join(cfg.chain_root, 'icon', 'input', + file_info[1]) + input_dir_name = 'icon_input_' + file_info[1] + setattr(cfg, input_dir_name, input_dir) + tools.create_dir(input_dir, input_dir_name) + varname_scratch = varname + '_scratch' + tools.copy_file(getattr(cfg, varname), + getattr(cfg, varname_scratch), output_log=True) - # Copy tracer data in case of ART - if cfg.target is tools.Target.ICONART or cfg.target is tools.Target.ICONARTOEM or\ - cfg.target is tools.Target.ICONARTGLOBAL: - - tools.create_dir(cfg.icon_input_xml, "icon_input_xml") - if hasattr(cfg, 'chemtracer_xml_filename'): - tools.copy_file(cfg.chemtracer_xml_filename, - cfg.chemtracer_xml_filename_scratch, - output_log=True) - if hasattr(cfg, 'pntSrc_xml_filename'): - tools.copy_file(cfg.pntSrc_xml_filename, - cfg.pntSrc_xml_filename_scratch, - output_log=True) - - # Copy data for global ICON-ART - if cfg.target is tools.Target.ICONARTGLOBAL: - - # -- Copy nudging data - if cfg.era5_global_nudging: - tools.copy_file(cfg.map_file_nudging, - cfg.map_file_nudging_scratch, - output_log=True) - - # -- Copy ART files - if hasattr(cfg, 'input_root_art'): - list_files = glob.glob(os.path.join(cfg.input_root_art, '*')) - for file in list_files: - tools.copy_file(file, cfg.icon_work) - - # -- Copy inicond file - if not cfg.era5_inicond: - tools.copy_file(cfg.inicond_filename, - cfg.inicond_filename_scratch, - output_log=True) - - # -- If not, download ERA5 data and create the inicond file + if cfg.model == 'icon-art-global': + # -- Download ERA5 data and create the inicond file if cfg.era5_inicond and cfg.lrestart == '.FALSE.': - # -- Fetch ERA5 data fetch_era5(starttime_real, cfg.icon_input_icbc) @@ -334,39 +275,7 @@ def main(starttime, hstart, hstop, cfg): os.symlink(cfg.restart_filename_scratch, os.path.join(cfg.icon_work, 'restart_atm_DOM01.nc')) - # Copy data for ICON-ART-OEM - if cfg.target is tools.Target.ICONARTOEM: - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_gridded_emissions_nc), - cfg.oae_gridded_emissions_nc_scratch) - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_vertical_profiles_nc), - cfg.oae_vertical_profiles_nc_scratch) - if hasattr(cfg, 'oae_hourofday_nc'): - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_hourofday_nc), - cfg.oae_hourofday_nc_scratch) - if hasattr(cfg, 'oae_dayofweek_nc'): - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_dayofweek_nc), - cfg.oae_dayofweek_nc_scratch) - if hasattr(cfg, 'oae_monthofyear_nc'): - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_monthofyear_nc), - cfg.oae_monthofyear_nc_scratch) - if hasattr(cfg, 'oae_hourofyear_nc'): - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_hourofyear_nc), - cfg.oae_hourofyear_nc_scratch) - if hasattr(cfg, 'oae_ens_reg_nc'): - tools.copy_file(os.path.join(cfg.oae_dir, cfg.oae_ens_reg_nc), - cfg.oae_ens_reg_nc_scratch) - if hasattr(cfg, 'oae_ens_lambda_nc'): - tools.copy_file( - os.path.join(cfg.oae_dir, cfg.oae_ens_lambda_nc), - cfg.oae_ens_lambda_nc_scratch) - - if cfg.target is not tools.Target.ICONARTGLOBAL: + else: # non-global ICON-ART #----------------------------------------------------- # Get datafile lists for LBC (each at 00 UTC and others) #----------------------------------------------------- @@ -377,7 +286,7 @@ def main(starttime, hstart, hstop, cfg): cfg.meteo_inc): meteo_file = os.path.join(cfg.icon_input_icbc, time.strftime(cfg.meteo_nameformat)) - if cfg.target is tools.Target.ICONART or cfg.target is tools.Target.ICONARTOEM: + if cfg.model == 'icon-art' or cfg.model == 'icon-art-oem': chem_file = os.path.join( cfg.icon_input_icbc, time.strftime(cfg.chem_nameformat)) @@ -445,10 +354,43 @@ def main(starttime, hstart, hstop, cfg): tools.rename_file(merged_file, src_file) logging.info("Added GEOSP to file {}".format(merged_file)) + #----------------------------------------------------- + # Add Q (copy of QV) and/or PS to initial file + #----------------------------------------------------- + if cfg.model.startswith('icon-art'): + meteo_file = os.path.join( + cfg.icon_input_icbc, + starttime.strftime(cfg.meteo_nameformat) + '.nc') + merged_file = os.path.join( + cfg.icon_input_icbc, + starttime.strftime(cfg.meteo_nameformat) + '_merged.nc') + ds = xr.open_dataset(meteo_file) + merging = False + if 'PS' not in ds: + if 'LNPS' not in ds: + raise KeyError( + f"'LNPS' must be found in the initial conditions file {meteo_file}" + ) + merging = True + ds['PS'] = ds['LNPS'] + ds['PS'].attrs = ds['LNPS'].attrs + ds['PS'] = np.exp(ds['PS']) + ds['PS'] = ds['PS'].squeeze(dim='lev_2') + ds['PS'].attrs["long_name"] = 'surface pressure' + ds['PS'].attrs['units'] = 'Pa' + logging.info(f"Added PS to file {meteo_file}") + if 'Q' not in ds: + merging = True + ds['Q'] = ds['QV'] + logging.info(f"Added Q to file {meteo_file}") + if merging: + ds.to_netcdf(merged_file) + tools.rename_file(merged_file, meteo_file) + #----------------------------------------------------- # In case of OEM: merge chem tracers with meteo-files #----------------------------------------------------- - if cfg.target is tools.Target.ICONARTOEM: + if cfg.model == 'icon-art-oem': for time in tools.iter_hours(starttime, hstart, hstop, cfg.meteo_inc): if time == starttime: @@ -605,7 +547,7 @@ def main(starttime, hstart, hstop, cfg): # Other IC/BC data inv_to_process = [] - if cfg.target is tools.Target.COSMOGHG: + if cfg.model == 'cosmo-ghg': try: CAMS = dict(fullname="CAMS", nickname="cams", @@ -626,7 +568,7 @@ def main(starttime, hstart, hstop, cfg): inv_to_process.append(CT) except AttributeError: pass - elif cfg.target is tools.Target.COSMOART: + elif cfg.model == 'cosmo-art': try: MOZART = dict(fullname='MOZART', nickname='mozart', @@ -641,7 +583,7 @@ def main(starttime, hstart, hstop, cfg): except AttributeError: pass - if cfg.target is tools.Target.COSMOGHG or cfg.target is tools.Target.COSMOART: + if cfg.model == 'cosmo-ghg' or cfg.model == 'cosmo-art': logging.info("Processing " + ", ".join([i["fullname"] for i in inv_to_process]) + " data") diff --git a/jobs/reduce_output.py b/jobs/reduce_output.py index dcf79f1f..f24dcb67 100644 --- a/jobs/reduce_output.py +++ b/jobs/reduce_output.py @@ -16,7 +16,7 @@ from . import tools -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """ Calculates 2D column data and writes them into a new netCDF file. Only a fixed number of levels from **COSMO** output are considered. diff --git a/jobs/tools/__init__.py b/jobs/tools/__init__.py index 14049f06..c300d936 100644 --- a/jobs/tools/__init__.py +++ b/jobs/tools/__init__.py @@ -18,7 +18,7 @@ from . import write_int2lm_input_art #from . import write_cosmo_input_ghg from . import mozart2int2lm -from .check_target import check_target +from .check_model import check_model from . import comp_nc from . import helper @@ -262,52 +262,6 @@ def remove_file(dest_path, output_log=False): logging.info("Removed {}".format(dest_path)) -class Target(Enum): - COSMO = auto() - COSMOART = auto() - COSMOGHG = auto() - ICON = auto() - ICONART = auto() - ICONARTOEM = auto() - ICONARTGLOBAL = auto() - - -class Subtarget(Enum): - NONE = auto() - SPINUP = auto() - - -str_to_enum = { - 'cosmo': Target.COSMO, - 'cosmo-art': Target.COSMOART, - 'cosmo-ghg': Target.COSMOGHG, - 'icon': Target.ICON, - 'icon-art': Target.ICONART, - 'icon-art-oem': Target.ICONARTOEM, - 'icon-art-global': Target.ICONARTGLOBAL, - 'none': Subtarget.NONE, - 'spinup': Subtarget.SPINUP, -} - - -def check_target(cfg, target=Target.COSMO): - """Check that the target specified in cfg matched the prescribed target. - - Check that cfg.target == target. If not, raises a RuntimeError. - - Parameters - ---------- - cfg : config-object - - target : Target enum - Prescribed target - """ - if not cfg.target is target: - raise RuntimeError("The target specified in the configuration file " - "is {}, but the job only applies to {}.".format( - cfg.target.name, target.name)) - - def levenshtein(s1, s2): """Return the levenshtein distance ("edit distance") between s1 and s2. @@ -389,3 +343,7 @@ def check_job_completion(log_finished_dir, job, waittime=3000): time.sleep(0.1) else: break + + +def check_model(model, model_list): + pass diff --git a/jobs/tools/check_model.py b/jobs/tools/check_model.py new file mode 100644 index 00000000..9a1b29c1 --- /dev/null +++ b/jobs/tools/check_model.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +def check_model(cfg, model='COSMO'): + """Check that the model specified in cfg matched the prescribed model. + + Check that cfg.model == model. If not, raises a value-error. + Ignores capitalization of the strings + + Parameters + ---------- + cfg : config-object + + model : str + Prescribed model + """ + #don't care about capitalization + if not cfg.model.lower() == model.lower(): + raise ValueError("The model specified in the configuration file is {}" + ", but the job only applies to {}.".format( + cfg.model, model)) diff --git a/jobs/tools/check_target.py b/jobs/tools/check_target.py deleted file mode 100644 index 5b383ffb..00000000 --- a/jobs/tools/check_target.py +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - - -def check_target(cfg, target='COSMO'): - """Check that the target specified in cfg matched the prescribed target. - - Check that cfg.target == target. If not, raises a value-error. - Ignores capitalization of the strings - - Parameters - ---------- - cfg : config-object - - target : str - Prescribed target - """ - #don't care about capitalization - if not cfg.target.lower() == target.lower(): - raise ValueError("The target specified in the configuration file is {}" - ", but the job only applies to {}.".format( - cfg.target, target)) diff --git a/jobs/tools/write_cosmo_input_ghg.py b/jobs/tools/write_cosmo_input_ghg.py index 3a0ab289..59df37fb 100644 --- a/jobs/tools/write_cosmo_input_ghg.py +++ b/jobs/tools/write_cosmo_input_ghg.py @@ -3,7 +3,6 @@ import csv import sys -import os from .. import tools STR2INT = { @@ -61,13 +60,9 @@ STR2INT_recycling["ytype_ini"] = {'zero': 1, 'file': 1, 'user': 2} -def group2text(group, model, recycling=False): - - if model == "COSMO": - lines = ['&TRACER'] - if model == "ICON": - lines = ['&ghgtracer_nml'] +def group2text(group, recycling=False): + lines = ['&TRACER'] for key, value in group.items(): if key == '' or value == '': @@ -85,10 +80,7 @@ def group2text(group, model, recycling=False): if key == 'ycatl' or key == 'ytpl' or key == 'yvpl': value = value.replace('\'\'', '\'') - if model == "COSMO": - lines.append(' %s = %s,' % (key, value)) - if model == "ICON": - lines.append(' %s = %s' % (key, value)) + lines.append(' %s = %s,' % (key, value)) lines.append('/\n') return '\n'.join(lines) @@ -96,7 +88,7 @@ def group2text(group, model, recycling=False): def main(csv_filename, namelist_filename, cfg=None): """Convert a table (``.csv`` file) to namelist file (``INPUT_GHG``) - read by **COSMO** + read by **COSMO**. Parameters ---------- @@ -106,23 +98,16 @@ def main(csv_filename, namelist_filename, cfg=None): Path to the namelist file that will be created """ - #Distinguish between COSMO and ICON - model = "COSMO" - if cfg.target is tools.Target.ICON or cfg.target is tools.Target.ICONART: - model = "ICON" - with open(csv_filename, 'r') as csv_file: reader = csv.DictReader(csv_file, delimiter=',') reader = [r for r in reader if r[''] != '#'] - n_tracers = len(reader) with open(namelist_filename, 'a') as nml_file: for group in reader: - if cfg.target.subtarget is tools.Subtarget.SPINUP \ - and not cfg.first_one: - nml_file.write(group2text(group, model, recycling=True)) + if cfg.variant == 'spinup' and not cfg.first_one: + nml_file.write(group2text(group, recycling=True)) else: - nml_file.write(group2text(group, model)) + nml_file.write(group2text(group)) if __name__ == '__main__': diff --git a/jobs/verify_chain.py b/jobs/verify_chain.py index 2340d30a..056566a3 100644 --- a/jobs/verify_chain.py +++ b/jobs/verify_chain.py @@ -19,7 +19,7 @@ def comp_data(dataset1, dataset2, variables): tools.helper.datasets_equal(dataset1, dataset2, variables, verbose=True) -def main(starttime, hstart, hstop, cfg): +def main(starttime, hstart, hstop, cfg, model_cfg): """Compare outputs of the chain to a reference. Looks for the reference-file in ``cfg.reference_dir``. diff --git a/run_chain.py b/run_chain.py index b58dc2c6..5582ae75 100755 --- a/run_chain.py +++ b/run_chain.py @@ -11,26 +11,11 @@ import shutil import argparse import csv +import yaml import jobs from jobs import tools -default_jobs = { - tools.Target.COSMO: ["prepare_data", "int2lm", "cosmo", "post_cosmo"], - tools.Target.COSMOGHG: [ - "prepare_data", "emissions", "biofluxes", "oae", "online_vprm", - "int2lm", "post_int2lm", "cosmo", "post_cosmo" - ], - tools.Target.COSMOART: [ - "prepare_data", "emissions", "obs_nudging", "photo_rate", "int2lm", - "cosmo", "post_cosmo" - ], - tools.Target.ICON: ["prepare_data", "icon"], - tools.Target.ICONART: ["prepare_data", "icon"], - tools.Target.ICONARTGLOBAL: ["prepare_data", "icon"], - tools.Target.ICONARTOEM: ["prepare_data", "oae", "icon"] -} - def parse_arguments(): """Parse the command line arguments given to this script @@ -69,10 +54,8 @@ def parse_arguments(): "job for int2lm. " "Jobs are executed in the order in which they are " "given here. " - "If no jobs are given, the default that will be " - "executed is: COSMO: {} | COSMOART : {}".format( - default_jobs[tools.Target.COSMO], - default_jobs[tools.Target.COSMOART])) + "If no jobs are given, default jobs will be executed" + "as defined in config/models.yaml.") parser.add_argument("-j", "--jobs", nargs='*', @@ -161,44 +144,44 @@ def load_config_file(casename, cfg): return cfg -def set_simulation_type(cfg): - """Detect the chain target and if there is a subtarget. +def check_model_set_variant(model_cfg, cfg): + """Checks the model and sets its variant. - Check if a target was provided in the config-object. If no target is - provided, set the target to cosmo in the config-object. + Check if a model was provided in the config-object. If no model is + provided, set the model to cosmo in the config-object. - Check if a subtarget was provided in the config-object. Subtargets + Check if a variant was provided in the config-object. Variants provide a way to customize the behaviour of the processing chain for different types of simulations. - Raise a RuntimeError if an unsupported target or subtarget is given in cfg. - You can add targets and subtargets in the jobs/tools/__init__.py file. - - Translates the target and subtarget from string to enum. + Raise a RuntimeError if an unsupported model or variant is given in cfg. + You can add models and variants in the config/models.yaml file. Parameters ---------- cfg : config-object """ - default = 'cosmo' - target_str = getattr(cfg, 'target', default) - try: - target_enum = tools.str_to_enum[target_str.lower()] - except KeyError: - raise ValueError("The target of the chain must be one of {}".format( - list(tools.str_to_enum.keys()))) - setattr(cfg, 'target', target_enum) + if hasattr(cfg, 'model'): + model_str = getattr(cfg, 'model') + else: + raise RuntimeError("Variable 'model' not set in config.") - subtarget_str = getattr(cfg, 'subtarget', 'none') - try: - subtarget_enum = tools.str_to_enum[subtarget_str.lower()] - except KeyError: - raise ValueError("The target of the chain must be one of {}".format( - list(tools.str_to_enum.keys()))) - setattr(cfg.target, 'subtarget', subtarget_enum) + models = model_cfg['models'] + if cfg.model not in models: + raise ValueError("Invalid model: {}".format(model_str)) + + if hasattr(cfg, 'variant'): + variants = models[cfg.model]['variants'] + if cfg.variant not in variants: + raise ValueError(f"Invalid variant for {cfg.model}: {cfg.variant}") + else: + setattr(cfg, 'variant', None) + + return cfg -def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): +def run_chain(work_root, model_cfg, cfg, start_time, hstart, hstop, job_names, + force): """Run chain ignoring already finished jobs. Sets configuration values derived from user-provided ones, for example the @@ -259,7 +242,7 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): inidate_int2lm_yyyymmddhh = (start_time + timedelta(hours=hstart)).strftime('%Y%m%d%H') - if cfg.target.subtarget is tools.Subtarget.SPINUP: + if cfg.variant == 'spinup': if cfg.first_one: # first run in spinup chain_root_last_run = '' else: # consecutive runs in spinup @@ -283,201 +266,78 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): setattr(cfg, 'forecasttime', forecasttime) - # int2lm processing always starts at hstart=0 and we modify inidate instead - setattr(cfg, 'inidate_int2lm_yyyymmddhh', inidate_int2lm_yyyymmddhh) - setattr(cfg, 'hstart_int2lm', '0') - setattr(cfg, 'hstop_int2lm', forecasttime) - # chain job_id = '%s_%d_%d' % (inidate_yyyymmddhh, hstart, hstop) chain_root = os.path.join(work_root, cfg.casename, job_id) setattr(cfg, 'chain_root', chain_root) - # INT2LM - setattr(cfg, 'int2lm_base', os.path.join(chain_root, 'int2lm')) - setattr(cfg, 'int2lm_input', os.path.join(chain_root, 'int2lm', 'input')) - setattr(cfg, 'int2lm_work', os.path.join(chain_root, 'int2lm', 'run')) - setattr(cfg, 'int2lm_output', os.path.join(chain_root, 'int2lm', 'output')) - - # COSMO - setattr(cfg, 'cosmo_base', os.path.join(chain_root, 'cosmo')) - setattr(cfg, 'cosmo_input', os.path.join(chain_root, 'cosmo', 'input')) - setattr(cfg, 'cosmo_work', os.path.join(chain_root, 'cosmo', 'run')) - setattr(cfg, 'cosmo_output', os.path.join(chain_root, 'cosmo', 'output')) - setattr(cfg, 'cosmo_output_reduced', - os.path.join(chain_root, 'cosmo', 'output_reduced')) - - # ICON - setattr(cfg, 'icon_base', os.path.join(chain_root, 'icon')) - setattr(cfg, 'icon_input', os.path.join(chain_root, 'icon', 'input')) - setattr(cfg, 'icon_input_icbc', - os.path.join(chain_root, 'icon', 'input', 'icbc')) - setattr(cfg, 'icon_input_oae', - os.path.join(chain_root, 'icon', 'input', 'oae')) - setattr(cfg, 'icon_input_grid', - os.path.join(chain_root, 'icon', 'input', 'grid')) - setattr(cfg, 'icon_input_mapping', - os.path.join(chain_root, 'icon', 'input', 'mapping')) - setattr(cfg, 'icon_input_rad', - os.path.join(chain_root, 'icon', 'input', 'rad')) - setattr(cfg, 'icon_input_xml', - os.path.join(chain_root, 'icon', 'input', 'xml')) - setattr(cfg, 'icon_work', os.path.join(chain_root, 'icon', 'run')) - setattr(cfg, 'icon_output', os.path.join(chain_root, 'icon', 'output')) - setattr(cfg, 'icon_output_reduced', - os.path.join(chain_root, 'icon', 'output_reduced')) - if cfg.target is tools.Target.ICON or cfg.target is tools.Target.ICONART \ - or cfg.target is tools.Target.ICONARTOEM or cfg.target is tools.Target.ICONARTGLOBAL: - setattr( - cfg, 'radiation_grid_filename_scratch', - os.path.join(cfg.icon_input_grid, - os.path.basename(cfg.radiation_grid_filename))) - setattr( - cfg, 'dynamics_grid_filename_scratch', - os.path.join(cfg.icon_input_grid, - os.path.basename(cfg.dynamics_grid_filename))) - setattr( - cfg, 'extpar_filename_scratch', - os.path.join(cfg.icon_input_grid, - os.path.basename(cfg.extpar_filename))) - setattr(cfg, 'lateral_boundary_grid_scratch', - os.path.join(cfg.icon_input_grid, 'lateral_boundary.grid.nc')) - setattr(cfg, 'lateral_boundary_grid_order', - os.path.join(cfg.icon_input_grid, 'lateral_boundary')) - setattr( - cfg, 'cldopt_filename_scratch', - os.path.join(cfg.icon_input_rad, - os.path.basename(cfg.cldopt_filename))) - setattr( - cfg, 'lrtm_filename_scratch', - os.path.join(cfg.icon_input_rad, - os.path.basename(cfg.lrtm_filename))) - if hasattr(cfg, 'chemtracer_xml_filename'): - setattr( - cfg, 'chemtracer_xml_filename_scratch', - os.path.join(cfg.icon_input_xml, - os.path.basename(cfg.chemtracer_xml_filename))) - if hasattr(cfg, 'pntSrc_xml_filename'): - setattr( - cfg, 'pntSrc_xml_filename_scratch', - os.path.join(cfg.icon_input_xml, - os.path.basename(cfg.pntSrc_xml_filename))) - - if cfg.target is tools.Target.ICONARTGLOBAL: - setattr( - cfg, 'inicond_filename_scratch', - os.path.join(cfg.icon_input_icbc, - os.path.basename(cfg.inicond_filename))) - setattr( - cfg, 'map_file_nudging_scratch', - os.path.join(cfg.icon_input_icbc, - os.path.basename(cfg.map_file_nudging))) - - else: - setattr( - cfg, 'map_file_latbc_scratch', - os.path.join(cfg.icon_input_grid, - os.path.basename(cfg.map_file_latbc))) - setattr( - cfg, 'map_file_ana_scratch', - os.path.join(cfg.icon_input_mapping, - os.path.basename(cfg.map_file_ana))) - - # OEM - if cfg.target is tools.Target.ICONARTOEM: - setattr( - cfg, 'oae_gridded_emissions_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_gridded_emissions_nc))) - setattr( - cfg, 'oae_vertical_profiles_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_vertical_profiles_nc))) - if hasattr(cfg, 'oae_hourofday_nc'): - setattr( - cfg, 'oae_hourofday_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_hourofday_nc))) - else: - setattr(cfg, 'oae_hourofday_nc_scratch', '') - if hasattr(cfg, 'oae_dayofweek_nc'): - setattr( - cfg, 'oae_dayofweek_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_dayofweek_nc))) - else: - setattr(cfg, 'oae_dayofweek_nc_scratch', '') - if hasattr(cfg, 'oae_monthofyear_nc'): - setattr( - cfg, 'oae_monthofyear_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_monthofyear_nc))) - else: - setattr(cfg, 'oae_monthofyear_nc_scratch', '') - if hasattr(cfg, 'oae_hourofyear_nc'): - setattr( - cfg, 'oae_hourofyear_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_hourofyear_nc))) - else: - setattr(cfg, 'oae_hourofyear_nc_scratch', '') - if hasattr(cfg, 'oae_ens_reg_nc'): - setattr( - cfg, 'oae_ens_reg_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_ens_reg_nc))) - if hasattr(cfg, 'oae_ens_lambda_nc'): - setattr( - cfg, 'oae_ens_lambda_nc_scratch', - os.path.join(cfg.icon_input_oae, - os.path.basename(cfg.oae_ens_lambda_nc))) - - # Number of tracers - tracer_csvfile = os.path.join(cfg.chain_src_dir, 'cases', cfg.casename, - 'cosmo_tracers.csv') - if os.path.isfile(tracer_csvfile): - if cfg.target is tools.Target.COSMOGHG: - with open(tracer_csvfile, 'r') as csv_file: - reader = csv.DictReader(csv_file, delimiter=',') - reader = [r for r in reader if r[''] != '#'] - setattr(cfg, 'in_tracers', len(reader)) - - # tracer_start namelist paramter for spinup simulation - if cfg.target.subtarget is tools.Subtarget.SPINUP: - if cfg.first_one: + if cfg.model.startswith('cosmo'): + # TODO: refactor + # INT2LM + setattr(cfg, 'int2lm_base', os.path.join(chain_root, 'int2lm')) + setattr(cfg, 'int2lm_input', os.path.join(chain_root, 'int2lm', + 'input')) + setattr(cfg, 'int2lm_work', os.path.join(chain_root, 'int2lm', 'run')) + setattr(cfg, 'int2lm_output', + os.path.join(chain_root, 'int2lm', 'output')) + + # int2lm processing always starts at hstart=0 and we modify inidate instead + setattr(cfg, 'inidate_int2lm_yyyymmddhh', inidate_int2lm_yyyymmddhh) + setattr(cfg, 'hstart_int2lm', '0') + setattr(cfg, 'hstop_int2lm', forecasttime) + + # COSMO + setattr(cfg, 'cosmo_base', os.path.join(chain_root, 'cosmo')) + setattr(cfg, 'cosmo_input', os.path.join(chain_root, 'cosmo', 'input')) + setattr(cfg, 'cosmo_work', os.path.join(chain_root, 'cosmo', 'run')) + setattr(cfg, 'cosmo_output', os.path.join(chain_root, 'cosmo', + 'output')) + setattr(cfg, 'cosmo_output_reduced', + os.path.join(chain_root, 'cosmo', 'output_reduced')) + + # Number of tracers + if 'tracers' in model_cfg['models'][cfg.model]['features']: + tracer_csvfile = os.path.join(cfg.chain_src_dir, 'cases', + cfg.casename, 'cosmo_tracers.csv') + if os.path.isfile(tracer_csvfile): + with open(tracer_csvfile, 'r') as csv_file: + reader = csv.DictReader(csv_file, delimiter=',') + reader = [r for r in reader if r[''] != '#'] + setattr(cfg, 'in_tracers', len(reader)) + else: + raise FileNotFoundError(f"File not found: {tracer_csvfile}") + + # tracer_start namelist paramter for spinup simulation + if cfg.variant == 'spinup': + if cfg.first_one: + setattr(cfg, 'tracer_start', 0) + else: + setattr(cfg, 'tracer_start', cfg.spinup) + else: setattr(cfg, 'tracer_start', 0) + + # asynchronous I/O + if hasattr(cfg, 'cfg.cosmo_np_io'): + if cfg.cosmo_np_io == 0: + setattr(cfg, 'lasync_io', '.FALSE.') + setattr(cfg, 'num_iope_percomm', 0) else: - setattr(cfg, 'tracer_start', cfg.spinup) - else: - setattr(cfg, 'tracer_start', 0) + setattr(cfg, 'lasync_io', '.TRUE.') + setattr(cfg, 'num_iope_percomm', 1) # constraint (gpu or mc) if hasattr(cfg, 'constraint'): assert cfg.constraint in ['gpu', 'mc'], ("Unknown constraint, use" "gpu or mc") - else: - # set default constraint - if cfg.target is tools.Target.COSMOART: - setattr(cfg, 'constraint', 'mc') - else: - setattr(cfg, 'constraint', 'gpu') - - # asynchronous I/O - if hasattr(cfg, 'cfg.cosmo_np_io'): - if cfg.cosmo_np_io == 0: - setattr(cfg, 'lasync_io', '.FALSE.') - setattr(cfg, 'num_iope_percomm', 0) - else: - setattr(cfg, 'lasync_io', '.TRUE.') - setattr(cfg, 'num_iope_percomm', 1) - if cfg.target.subtarget is tools.Subtarget.SPINUP: + # Spinup + if cfg.variant == 'spinup': setattr(cfg, 'last_cosmo_output', os.path.join(chain_root_last_run, 'cosmo', 'output')) # No restart for spinup simulations (= default values for no restart) setattr(cfg, 'cosmo_restart_out', '') setattr(cfg, 'cosmo_restart_in', '') - elif cfg.target is not tools.Target.COSMOART: + elif 'restart' in model_cfg['models'][cfg.model]['features']: job_id_last_run = '%s_%d_%d' % (inidate_yyyymmddhh, hstart - cfg.restart_step, hstart) chain_root_last_run = os.path.join(work_root, cfg.casename, @@ -488,12 +348,48 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): setattr(cfg, 'cosmo_restart_in', os.path.join(chain_root_last_run, 'cosmo', 'restart')) - if cfg.target is tools.Target.COSMOART: - # no restarts in cosmoart + # Restart step + if 'restart' in model_cfg['models'][cfg.model]['features']: setattr(cfg, 'restart_step', hstop - hstart) - if cfg.target is tools.Target.ICON or cfg.target is tools.Target.ICONART or \ - cfg.target is tools.Target.ICONARTOEM or cfg.target is tools.Target.ICONARTGLOBAL: + # if nested run: use output of mother-simulation + if 'nesting' in model_cfg['models'][ + cfg.model]['features'] and not os.path.isdir(cfg.meteo_dir): + # if ifs_hres_dir doesn't point to a directory, + # it is the name of the mother run + mother_name = cfg.meteo_dir + cfg.meteo_dir = os.path.join(work_root, mother_name, job_id, 'cosmo', + 'output') + cfg.meteo_inc = 1 + cfg.meteo_prefix = 'lffd' + + # ICON + if cfg.model.startswith('icon'): + setattr(cfg, 'icon_base', os.path.join(chain_root, 'icon')) + setattr(cfg, 'icon_input', os.path.join(chain_root, 'icon', 'input')) + setattr(cfg, 'icon_input_icbc', + os.path.join(chain_root, 'icon', 'input', 'icbc')) + setattr(cfg, 'icon_input_oae', + os.path.join(chain_root, 'icon', 'input', 'OEM')) + setattr(cfg, 'icon_input_grid', + os.path.join(chain_root, 'icon', 'input', 'grid')) + setattr(cfg, 'icon_input_mapping', + os.path.join(chain_root, 'icon', 'input', 'mapping')) + setattr(cfg, 'icon_input_rad', + os.path.join(chain_root, 'icon', 'input', 'rad')) + setattr(cfg, 'icon_input_xml', + os.path.join(chain_root, 'icon', 'input', 'XML')) + setattr(cfg, 'icon_work', os.path.join(chain_root, 'icon', 'run')) + setattr(cfg, 'icon_output', os.path.join(chain_root, 'icon', 'output')) + setattr(cfg, 'icon_output_reduced', + os.path.join(chain_root, 'icon', 'output_reduced')) + + for varname in cfg.input_files: + file_info = cfg.input_files[varname] + setattr(cfg, varname, + os.path.join(cfg.input_root, file_info[1], file_info[0])) + setattr(cfg, f'{varname}_scratch', + os.path.join(cfg.icon_input, file_info[1], file_info[0])) ini_datetime_string = ( start_time + timedelta(hours=hstart)).strftime('%Y-%m-%dT%H:00:00Z') @@ -510,18 +406,6 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): # TODO: Set correct restart setting setattr(cfg, 'lrestart', '.FALSE.') - # if nested run: use output of mother-simulation - if cfg.target is tools.Target.COSMOART and not os.path.isdir( - cfg.meteo_dir): - # if ifs_hres_dir doesn't point to a directory, - # it is the name of the mother run - mother_name = cfg.meteo_dir - cfg.meteo_dir = os.path.join(work_root, mother_name, job_id, 'cosmo', - 'output') - - cfg.meteo_inc = 1 - cfg.meteo_prefix = 'lffd' - # logging log_working_dir = os.path.join(chain_root, 'checkpoints', 'working') log_finished_dir = os.path.join(chain_root, 'checkpoints', 'finished') @@ -541,13 +425,6 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): # run jobs (if required) for job in job_names: - - # mapping of scripts in jobs with their arguments - - # if job == 'meteo': - # job.meteo.main(start_time, hstart, hstop, cfg) - # continue - skip = False # if exists job is currently worked on or has been finished @@ -585,7 +462,7 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): # Launch the job to_call = getattr(jobs, job) - to_call.main(start_time, hstart, hstop, cfg) + to_call.main(start_time, hstart, hstop, cfg, model_cfg) shutil.copy(logfile, logfile_finish) @@ -615,7 +492,8 @@ def run_chain(work_root, cfg, start_time, hstart, hstop, job_names, force): raise RuntimeError(subject) -def restart_runs(work_root, cfg, start, hstart, hstop, job_names, force): +def restart_runs(work_root, model_cfg, cfg, start, hstart, hstop, job_names, + force): """Starts the subchains in the specified intervals. Slices the total runtime of the chain according to ``cfg.restart_step``. @@ -653,6 +531,7 @@ def restart_runs(work_root, cfg, start, hstart, hstop, job_names, force): print("Starting run with starttime {}".format(time)) run_chain(work_root=work_root, + model_cfg=model_cfg, cfg=cfg, start_time=start, hstart=sub_hstart, @@ -661,8 +540,8 @@ def restart_runs(work_root, cfg, start, hstart, hstop, job_names, force): force=force) -def restart_runs_spinup(work_root, cfg, start, hstart, hstop, job_names, - force): +def restart_runs_spinup(work_root, model_cfg, cfg, start, hstart, hstop, + job_names, force): """Starts the subchains in the specified intervals. Slices the total runtime of the chain according to ``cfg.restart_step``. @@ -727,6 +606,7 @@ def restart_runs_spinup(work_root, cfg, start, hstart, hstop, job_names, if cfg.first_one: run_chain(work_root=work_root, + model_cfg=model_cfg, cfg=cfg, start_time=time, hstart=0, @@ -735,6 +615,7 @@ def restart_runs_spinup(work_root, cfg, start, hstart, hstop, job_names, force=force) else: run_chain(work_root=work_root, + model_cfg=model_cfg, cfg=cfg, start_time=time, hstart=-cfg.spinup, @@ -743,34 +624,41 @@ def restart_runs_spinup(work_root, cfg, start, hstart, hstop, job_names, force=force) +def load_model_config_yaml(yamlfile): + with open(yamlfile) as file: + model_cfg = yaml.safe_load(file) + return model_cfg + + if __name__ == '__main__': args = parse_arguments() # 'empty' config object to be overwritten by load_config_file cfg = None for casename in args.casenames: + model_cfg = load_model_config_yaml('config/models.yaml') cfg = load_config_file(casename=casename, cfg=cfg) start_time = datetime.strptime(args.startdate, '%Y-%m-%d') - set_simulation_type(cfg) + cfg = check_model_set_variant(model_cfg, cfg) if args.job_list is None: - args.job_list = default_jobs[cfg.target] + args.job_list = model_cfg['models'][cfg.model]['jobs'] - print("Starting chain for case {}, using {}".format( - casename, cfg.target.name)) + print(f"Starting chain for case {casename} and model {cfg.model}") - if cfg.target is tools.Target.COSMO or cfg.target is tools.Target.ICON or \ - cfg.target is tools.Target.ICONART or cfg.target is tools.Target.ICONARTOEM or \ - cfg.target is tools.Target.ICONARTGLOBAL or cfg.target is tools.Target.COSMOGHG: - if cfg.target.subtarget is tools.Subtarget.NONE: + if 'restart' in model_cfg['models'][cfg.model]['features']: + if cfg.variant is None: restart_runs(work_root=cfg.work_root, + model_cfg=model_cfg, cfg=cfg, start=start_time, hstart=args.hstart, hstop=args.hstop, job_names=args.job_list, force=args.force) - elif cfg.target.subtarget is tools.Subtarget.SPINUP: + elif cfg.variant == 'spinup': + print(f"Model variant is {cfg.variant}") restart_runs_spinup(work_root=cfg.work_root, + model_cfg=model_cfg, cfg=cfg, start=start_time, hstart=args.hstart, @@ -778,9 +666,8 @@ def restart_runs_spinup(work_root, cfg, start, hstart, hstop, job_names, job_names=args.job_list, force=args.force) else: - raise RuntimeError("Unknown subtarget: {}".format( - cfg.subtarget)) - elif cfg.target is tools.Target.COSMOART: + raise RuntimeError(f"Unknown variant: {cfg.variant}") + else: # cosmoart can't do restarts run_chain(work_root=cfg.work_root, cfg=cfg, @@ -789,7 +676,5 @@ def restart_runs_spinup(work_root, cfg, start, hstart, hstop, job_names, hstop=args.hstop, job_names=args.job_list, force=args.force) - else: - raise RuntimeError("Unknown target: {}".format(cfg.target)) print('>>> finished chain for good or bad! <<<')