From 3b3482302ea7e86488d00b593ca6a091691b780f Mon Sep 17 00:00:00 2001
From: David Klein <dklein@pik-potsdam.de>
Date: Mon, 13 Jan 2020 16:55:22 +0100
Subject: [PATCH] Refactoring: - start scripts (part 6): delete files that are
 not needed anymore, moved files.

---
 scripts/output/comparison/compareScenarios.R  |   4 +-
 scripts/run_submit/submit.R                   | 432 ------------------
 scripts/run_submit/submit.cmd                 |  16 -
 scripts/run_submit/submit_par.cmd             |  17 -
 scripts/run_submit/submit_par16.cmd           |  17 -
 scripts/run_submit/submit_short.cmd           |  15 -
 .../run_compareScenarios.R                    |   0
 start.R                                       |  26 --
 start_bundle.R                                | 126 -----
 9 files changed, 2 insertions(+), 651 deletions(-)
 delete mode 100644 scripts/run_submit/submit.R
 delete mode 100644 scripts/run_submit/submit.cmd
 delete mode 100644 scripts/run_submit/submit_par.cmd
 delete mode 100644 scripts/run_submit/submit_par16.cmd
 delete mode 100644 scripts/run_submit/submit_short.cmd
 rename scripts/{run_submit => utils}/run_compareScenarios.R (100%)
 delete mode 100644 start.R
 delete mode 100644 start_bundle.R

diff --git a/scripts/output/comparison/compareScenarios.R b/scripts/output/comparison/compareScenarios.R
index b946208..449801c 100644
--- a/scripts/output/comparison/compareScenarios.R
+++ b/scripts/output/comparison/compareScenarios.R
@@ -52,11 +52,11 @@ start_comp <- function(outputdirs,shortTerm,outfilename) {
   cat("Starting ",jobname,"\n")
   on_cluster <- file.exists("/p/projects/")
   if (on_cluster) {
-    system(paste0("srun --qos=standby --job-name=",jobname," --output=",jobname,".out --error=",jobname,".err --mail-type=END --time=200 --mem-per-cpu=8000 Rscript scripts/run_submit/run_compareScenarios.R outputdirs=",paste(outputdirs,collapse=",")," shortTerm=",shortTerm," outfilename=",jobname," &"))
+    system(paste0("srun --qos=standby --job-name=",jobname," --output=",jobname,".out --error=",jobname,".err --mail-type=END --time=200 --mem-per-cpu=8000 Rscript scripts/utils/run_compareScenarios.R outputdirs=",paste(outputdirs,collapse=",")," shortTerm=",shortTerm," outfilename=",jobname," &"))
   } else {
     outfilename    <- jobname
     tmp.env <- new.env()
-    script <- "scripts/run_submit/run_compareScenarios.R"
+    script <- "scripts/utils/run_compareScenarios.R"
     tmp.error <- try(sys.source(script,envir=tmp.env))
     if(!is.null(tmp.error)) warning("Script ",script," was stopped by an error and not executed properly!")
     rm(tmp.env)
diff --git a/scripts/run_submit/submit.R b/scripts/run_submit/submit.R
deleted file mode 100644
index 73a2b8b..0000000
--- a/scripts/run_submit/submit.R
+++ /dev/null
@@ -1,432 +0,0 @@
-# |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
-# |  authors, and contributors see CITATION.cff file. This file is part
-# |  of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
-# |  AGPL-3.0, you are granted additional permissions described in the
-# |  REMIND License Exception, version 1.0 (see LICENSE file).
-# |  Contact: remind@pik-potsdam.de
-
-library(lucode, quietly = TRUE,warn.conflicts =FALSE)
-library(dplyr, quietly = TRUE,warn.conflicts =FALSE)
-require(gdx)
-
-
-
-# Function to create the levs.gms, fixings.gms, and margs.gms files, used in 
-# delay scenarios.
-create_fixing_files <- function(cfg, input_ref_file = "input_ref.gdx") {
-  
-  # Start the clock.
-  begin <- Sys.time()
-  
-  # Extract data from input_ref.gdx file and store in levs_margs_ref.gms. 
-  system(paste("gdxdump", 
-               input_ref_file, 
-               "Format=gamsbas Delim=comma FilterDef=N Output=levs_margs_ref.gms", 
-               sep = " "))
-  
-  # Read data from levs_margs_ref.gms.
-  ref_gdx_data <- suppressWarnings(readLines("levs_margs_ref.gms"))
-  
-  # Create fixing files.
-  cat("\n")
-  create_standard_fixings(cfg, ref_gdx_data)
-  
-  # Stop the clock.
-  cat("Time it took to create the fixing files: ")
-  manipulate_runtime <- Sys.time()-begin
-  print(manipulate_runtime)
-  cat("\n")
-  
-  
-  # Delete file.
-  file.remove("levs_margs_ref.gms")
-  
-}
-
-
-# Function to create the levs.gms, fixings.gms, and margs.gms files, used in 
-# the standard (i.e. the non-macro stand-alone) delay scenarios.
-create_standard_fixings <- function(cfg, ref_gdx_data) {
-  
-  # Declare empty lists to hold the strings for the 'manipulateFile' functions. 
-  full_manipulateThis <- NULL
-  levs_manipulateThis <- NULL
-  fixings_manipulateThis <- NULL
-  margs_manipulateThis <- NULL
-
-  str_years <- c()
-  no_years  <- (cfg$gms$cm_startyear - 2005) / 5  
-  
-  # Write level values to file
-  levs <- c()
-  for (i in 1:no_years) {
-    str_years[i] <- paste("L \\('", 2000 + i * 5, sep = "")
-    levs         <- c(levs, grep(str_years[i], ref_gdx_data, value = TRUE))
-  }
-  
-  writeLines(levs, "levs.gms")
-  
-  # Replace fixing.gms with level values
-  file.copy("levs.gms", "fixings.gms", overwrite = TRUE)
-
-  fixings_manipulateThis <- c(fixings_manipulateThis, list(c(".L ", ".FX ")))
-  #cb q_co2eq is only "static" equation to be active before cm_startyear, as multigasscen could be different from a scenario to another that is fixed on the first  
-  #cb therefore, vm_co2eq cannot be fixed, otherwise infeasibilities would result. vm_co2eq.M is meaningless, is never used in the code (a manipulateFile delete line command would be even better)
-  #  manipulateFile("fixings.gms", list(c("vm_co2eq.FX ", "vm_co2eq.M ")))
-  
-  # Write marginal values to file
-  margs <- c()
-  str_years    <- c()
-  for (i in 1:no_years) {
-    str_years[i] <- paste("M \\('", 2000 + i * 5, sep = "")
-    margs        <- c(margs, grep(str_years[i], ref_gdx_data, value = TRUE))
-  }
-  writeLines(margs, "margs.gms")
-   # temporary fix so that you can use older gdx for fixings - will become obsolete in the future and can be deleted once the next variable name change is done
-  margs_manipulateThis <- c(margs_manipulateThis, list(c("q_taxrev","q21_taxrev")))
-  # fixing for SPA runs based on ModPol input data
-  margs_manipulateThis <- c(margs_manipulateThis, 
-                            list(c("q41_emitrade_restr_mp.M", "!!q41_emitrade_restr_mp.M")),
-                            list(c("q41_emitrade_restr_mp2.M", "!!q41_emitrade_restr_mp2.M"))) 
-  
-  #AJS this symbol is not known and crashes the run - is it depreciated? TODO 
-  levs_manipulateThis <- c(levs_manipulateThis, 
-                           list(c("vm_pebiolc_price_base.L", "!!vm_pebiolc_price_base.L")))
-  
-  #AJS filter out nash marginals in negishi case, as they would lead to a crash when trying to fix on them:
-  if(cfg$gms$optimization == 'negishi'){
-    margs_manipulateThis <- c(margs_manipulateThis, list(c("q80_costAdjNash.M", "!!q80_costAdjNash.M")))
-  }
-  if(cfg$gms$subsidizeLearning == 'off'){
-    levs_manipulateThis <- c(levs_manipulateThis, 
-                             list(c("v22_costSubsidizeLearningForeign.L",
-                                    "!!v22_costSubsidizeLearningForeign.L")))
-    margs_manipulateThis <- c(margs_manipulateThis, 
-                              list(c("q22_costSubsidizeLearning.M", "!!q22_costSubsidizeLearning.M")),
-                              list(c("v22_costSubsidizeLearningForeign.M",
-                                     "!!v22_costSubsidizeLearningForeign.M")),
-                              list(c("q22_costSubsidizeLearningForeign.M",
-                                     "!!q22_costSubsidizeLearningForeign.M")))
-    fixings_manipulateThis <- c(fixings_manipulateThis, 
-                                list(c("v22_costSubsidizeLearningForeign.FX",
-                                       "!!v22_costSubsidizeLearningForeign.FX")))
-    
-  }
-  
-  #JH filter out negishi marginals in nash case, as they would lead to a crash when trying to fix on them:
-  if(cfg$gms$optimization == 'nash'){
-    margs_manipulateThis <- c(margs_manipulateThis, 
-                              list(c("q80_balTrade.M", "!!q80_balTrade.M")),
-                              list(c("q80_budget_helper.M", "!!q80_budget_helper.M")))
-  }
-  #RP filter out module 40 techpol fixings 
-  if(cfg$gms$techpol == 'none'){
-    margs_manipulateThis <- c(margs_manipulateThis, 
-                              list(c("q40_NewRenBound.M", "!!q40_NewRenBound.M")),
-                              list(c("q40_CoalBound.M", "!!q40_CoalBound.M")),
-                              list(c("q40_LowCarbonBound.M", "!!q40_LowCarbonBound.M")),
-                              list(c("q40_FE_RenShare.M", "!!q40_FE_RenShare.M")),
-                              list(c("q40_trp_bound.M", "!!q40_trp_bound.M")),
-                              list(c("q40_TechBound.M", "!!q40_TechBound.M")),
-                              list(c("q40_ElecBioBound.M", "!!q40_ElecBioBound.M")),
-                              list(c("q40_PEBound.M", "!!q40_PEBound.M")),
-                              list(c("q40_PEcoalBound.M", "!!q40_PEcoalBound.M")),
-                              list(c("q40_PEgasBound.M", "!!q40_PEgasBound.M")),
-                              list(c("q40_PElowcarbonBound.M", "!!q40_PElowcarbonBound.M")),
-                              list(c("q40_EV_share.M", "!!q40_EV_share.M")),
-                              list(c("q40_TrpEnergyRed.M", "!!q40_TrpEnergyRed.M")),
-                              list(c("q40_El_RenShare.M", "!!q40_El_RenShare.M")),
-                              list(c("q40_BioFuelBound.M", "!!q40_BioFuelBound.M")))
-
-  }
-  
-  if(cfg$gms$techpol == 'NPi2018'){
-    margs_manipulateThis <- c(margs_manipulateThis, 
-                              list(c("q40_El_RenShare.M", "!!q40_El_RenShare.M")),
-                              list(c("q40_CoalBound.M", "!!q40_CoalBound.M")))
-  }
-  
-  # Include fixings (levels) and marginals in full.gms at predefined position 
-  # in core/loop.gms.
-  full_manipulateThis <- c(full_manipulateThis, 
-                           list(c("cb20150605readinpositionforlevelfile",
-                                  paste("first offlisting inclusion of levs.gms so that level value can be accessed",
-                                        "$offlisting",
-                                        "$include \"levs.gms\";",
-                                        "$onlisting", sep = "\n"))))
-  full_manipulateThis <- c(full_manipulateThis, list(c("cb20140305readinpositionforfinxingfiles",
-                                                       paste("offlisting inclusion of levs.gms, fixings.gms, and margs.gms",
-                                                             "$offlisting",
-                                                             "$include \"levs.gms\";",
-                                                             "$include \"fixings.gms\";",
-                                                             "$include \"margs.gms\";",
-                                                             "$onlisting", sep = "\n"))))
-  
-  
-  # Perform actual manipulation on levs.gms, fixings.gms, and margs.gms in 
-  # single, respective, parses of the texts.
-  manipulateFile("levs.gms", levs_manipulateThis)
-  manipulateFile("fixings.gms", fixings_manipulateThis)
-  manipulateFile("margs.gms", margs_manipulateThis)
-  
-  # Perform actual manipulation on full.gms, in single parse of the text.
-  manipulateFile("full.gms", full_manipulateThis)
-}
-
-
-
-
-
-# Set value source_include so that loaded scripts know, that they are 
-# included as source (instead a load from command line)
-source_include <- TRUE
-
-# unzip all .gz files
-system("gzip -d -f *.gz")
-
-# Load REMIND run configuration
-load("config.Rdata")
-
-
-#AJS set MAGCFG file
-magcfgFile = paste0('./magicc/MAGCFG_STORE/','MAGCFG_USER_',toupper(cfg$gms$cm_magicc_config),'.CFG')
-if(!file.exists(magcfgFile)){
-    stop(paste('ERROR in MAGGICC configuration: Could not find file ',magcfgFile))
-}
-system(paste0('cp ',magcfgFile,' ','./magicc/MAGCFG_USER.CFG'))
-
-# Change flag "cm_compile_main" from TRUE to FALSE since we are not compiling 
-# main.gms but executing full.gms and therefore want to load some data from the
-# input.gdx files.
-manipulateFile("full.gms", list(c("\\$setglobal cm_compile_main *TRUE",
-                                  "\\$setglobal cm_compile_main FALSE")))
-
-# Prepare the files containing the fixings for delay scenarios (for fixed runs)
-if (  cfg$gms$cm_startyear > 2005  & (!file.exists("levs.gms.gz") | !file.exists("levs.gms"))) {
-  create_fixing_files(cfg = cfg, input_ref_file = "input_ref.gdx")
-}
-
- 
-# Store REMIND directory and output file names
-maindir <- cfg$remind_folder
-REMIND_mif_name <- paste("REMIND_generic_", cfg$title, ".mif", sep = "")
-
-# Print message
-cat("\nStarting REMIND...\n")
-
-# Save start time
-begin <- Sys.time()
-
-# Call GAMS
-if (cfg$gms$CES_parameters == "load") {
-
-  system(paste0(cfg$gamsv, " full.gms -errmsg=1 -a=", cfg$action, 
-                " -ps=0 -pw=185 -gdxcompress=1 -logoption=", cfg$logoption))
-
-} else if (cfg$gms$CES_parameters == "calibrate") {
-
-  # Remember file modification time of fulldata.gdx to see if it changed
-  fulldata_m_time <- Sys.time();
-
-  # Save original input
-  file.copy("input.gdx", "input_00.gdx", overwrite = TRUE)
-
-  # Iterate calibration algorithm
-  for (cal_itr in 1:cfg$gms$c_CES_calibration_iterations) {
-    cat("CES calibration iteration: ", cal_itr, "\n")
-
-    # Update calibration iteration in GAMS file
-    system(paste0("sed -i 's/^\\(\\$setglobal c_CES_calibration_iteration ", 
-                  "\\).*/\\1", cal_itr, "/' full.gms"))
-
-    system(paste0(cfg$gamsv, " full.gms -errmsg=1 -a=", cfg$action, 
-                  " -ps=0 -pw=185 -gdxcompress=1 -logoption=", cfg$logoption))
-
-    # If GAMS found a solution
-    if (   file.exists("fulldata.gdx")
-        && file.info("fulldata.gdx")$mtime > fulldata_m_time) {
-      
-      #create the file to be used in the load mode
-      getLoadFile <- function(){
-        
-        file_name = paste0(cfg$gms$cm_CES_configuration,"_ITERATION_",cal_itr,".inc")
-        ces_in = system("gdxdump fulldata.gdx symb=in NoHeader Format=CSV", intern = TRUE) %>% gsub("\"","",.) #" This comment is just to obtain correct syntax highlighting
-        expr_ces_in = paste0("(",paste(ces_in, collapse = "|") ,")")
-
-        
-        tmp = system("gdxdump fulldata.gdx symb=pm_cesdata", intern = TRUE)[-(1:2)] %>% 
-          grep("(quantity|price|eff|effgr|xi|rho|offset_quantity|compl_coef)", x = ., value = TRUE)
-        tmp = tmp %>% grep(expr_ces_in,x = ., value = T)
-        
-        tmp %>%
-          sub("'([^']*)'.'([^']*)'.'([^']*)'.'([^']*)' (.*)[ ,][ /];?",
-              "pm_cesdata(\"\\1\",\"\\2\",\"\\3\",\"\\4\") = \\5;", x = .) %>%
-          write(file_name)
-        
-        
-        pm_cesdata_putty = system("gdxdump fulldata.gdx symb=pm_cesdata_putty", intern = TRUE)
-        if (length(pm_cesdata_putty) == 2){
-          tmp_putty =  gsub("^Parameter *([A-z_(,)])+cesParameters\\).*$",'\\1"quantity")  =   0;',  pm_cesdata_putty[2])
-        } else {
-          tmp_putty = pm_cesdata_putty[-(1:2)] %>%
-            grep("quantity", x = ., value = TRUE) %>%
-            grep(expr_ces_in,x = ., value = T)
-        }
-        tmp_putty %>%
-          sub("'([^']*)'.'([^']*)'.'([^']*)'.'([^']*)' (.*)[ ,][ /];?",
-              "pm_cesdata_putty(\"\\1\",\"\\2\",\"\\3\",\"\\4\") = \\5;", x = .)%>% write(file_name,append =T)
-      }
-      
-      getLoadFile()
-
-      # Store all the interesting output
-      file.copy("full.lst", sprintf("full_%02i.lst", cal_itr), overwrite = TRUE)
-      file.copy("full.log", sprintf("full_%02i.log", cal_itr), overwrite = TRUE)
-      file.copy("fulldata.gdx", "input.gdx", overwrite = TRUE)
-      file.copy("fulldata.gdx", sprintf("input_%02i.gdx", cal_itr), 
-                overwrite = TRUE)
-
-      # Update file modification time
-      fulldata_m_time <- file.info("fulldata.gdx")$mtime
-
-    } else {
-      break
-    }
-  }
-} else {
-  stop("unknown realisation of 29_CES_parameters")
-}
-
-# Calculate run time
-gams_runtime <- Sys.time() - begin
-
-# If REMIND actually did run
-if (cfg$action == "ce" && cfg$gms$c_skip_output != "on") {
-
-  # Print Message
-  cat("\nREMIND run finished!\n")
-
-  # Create solution report for Nash runs
-  if (cfg$gms$optimization == "nash" && cfg$gms$cm_nash_mode != "debug" && file.exists("fulldata.gdx")) {
-    system("gdxdump fulldata.gdx Format=gamsbas Delim=comma Output=output_nash.gms")
-    file.append("full.lst", "output_nash.gms")
-    file.remove("output_nash.gms")
-  }
-}
-
-# Collect and submit run statistics to central data base
-lucode::runstatistics(file       = "runstatistics.rda",
-                      modelstat  = readGDX(gdx="fulldata.gdx","o_modelstat", format="first_found"),
-                      config     = cfg,
-                      runtime    = gams_runtime,
-                      setup_info = lucode::setup_info(),
-                      submit     = cfg$runstatistics)
-
-# Compress files with the fixing-information
-if (cfg$gms$cm_startyear > 2005) 
-  system("gzip -f levs.gms margs.gms fixings.gms")
-
-# go up to the main folder, where the cfg files for subsequent runs are stored
-setwd(cfg$remind_folder)
-
-#====================== Subsequent runs ===========================
-
-# 1. Save the path to the fulldata.gdx of the current run to the cfg files 
-# of the runs that use it as 'input_bau.gdx'
-
-# Use the name to check whether it is a coupled run (TRUE if the name ends with "-rem-xx")
-coupled_run <- grepl("-rem-[0-9]{1,2}$",cfg$title)
-
-no_ref_runs <- identical(cfg$RunsUsingTHISgdxAsBAU,character(0)) | all(is.na(cfg$RunsUsingTHISgdxAsBAU)) | coupled_run
-
-if(!no_ref_runs) {
-  source("scripts/start_functions.R")
-  # Save the current cfg settings into a different data object, so that they are not overwritten
-  cfg_main <- cfg
-  
-  for(run in seq(1,length(cfg_main$RunsUsingTHISgdxAsBAU))){
-    # for each of the runs that use this gdx as bau, read in the cfg, ...
-    cat("Writing the path for input_bau.gdx to ",paste0(cfg_main$RunsUsingTHISgdxAsBAU[run],".RData"),"\n")
-    load(paste0(cfg_main$RunsUsingTHISgdxAsBAU[run],".RData"))
-    # ...change the path_gdx_bau field of the subsequent run to the fulldata gdx of the current run ...
-    cfg$files2export$start['input_bau.gdx'] <- paste0(cfg_main$remind_folder,"/",cfg_main$results_folder,"/fulldata.gdx")
-    save(cfg, file = paste0(cfg_main$RunsUsingTHISgdxAsBAU[run],".RData"))
-  }
-  # Set cfg back to original
-  cfg <- cfg_main
-}
-
-# 2. Save the path to the fulldata.gdx of the current run to the cfg files 
-# of the subsequent runs that use it as 'input_ref.gdx' and start these runs 
-
-no_subsequent_runs <- identical(cfg$subsequentruns,character(0)) | identical(cfg$subsequentruns,NULL) | coupled_run
-
-if(no_subsequent_runs){
-  cat('\nNo subsequent run was set for this scenario\n')
-} else {
-  # Save the current cfg settings into a different data object, so that they are not overwritten
-  cfg_main <- cfg
-  source("scripts/start_functions.R")
-  
-  for(run in seq(1,length(cfg_main$subsequentruns))){
-    # for each of the subsequent runs, read in the cfg, ...
-    cat("Writing the path for input_ref.gdx to ",paste0(cfg_main$subsequentruns[run],".RData"),"\n")
-    load(paste0(cfg_main$subsequentruns[run],".RData"))
-    # ...change the path_gdx_ref field of the subsequent run to the fulldata gdx of the current (preceding) run ...
-    cfg$files2export$start['input_ref.gdx'] <- paste0(cfg_main$remind_folder,"/",cfg_main$results_folder,"/fulldata.gdx")
-    save(cfg, file = paste0(cfg_main$subsequentruns[run],".RData"))
-    
-    # Subsequent runs will be started in submit.R using the RData files written above 
-    # after the current run has finished.
-    cat("Starting subsequent run ",cfg_main$subsequentruns[run],"\n")
-    start_run(cfg)
-  }
-  # Set cfg back to original
-  cfg <- cfg_main
-}
-
-# 3. Create script file that can be used later to restart the subsequent runs manually.
-# In case there are no subsequent runs (or it's coupled runs), the file contains only 
-# a small message.
-
-subseq_start_file  <- paste0(cfg$results_folder,"/start_subsequentruns.R")
-
-if(no_subsequent_runs){
-  write("cat('\nNo subsequent run was set for this scenario\n')",file=subseq_start_file)
-} else {
-  #  go up to the main folder, where the cfg. files for subsequent runs are stored
-  filetext <- paste0("setwd('",cfg$remind_folder,"')\n")
-  filetext <- paste0(filetext,"source('scripts/start_functions.R')\n")
-  for(run in seq(1,length(cfg$subsequentruns))){
-    filetext <- paste0(filetext,"\n")
-    filetext <- paste0(filetext,"load('",cfg$subsequentruns[run],".RData')\n")
-    filetext <- paste0(filetext,"cat('",cfg$subsequentruns[run],"')\n")
-    filetext <- paste0(filetext,"start_run(cfg)\n")
-  }
-  # Write the text to the file
-  write(filetext,file=subseq_start_file)
-}
-
-#=================== END - Subsequent runs ========================
-  
-# Reload the REMIND run configuration
-load(cfg$val_workspace) 
-
-# Print REMIND runtime
-cat("\n gams_runtime is ", gams_runtime, "\n")
-
-# Save runtime for REMIND validation
-validation$technical$time$full.gms <- gams_runtime
-save(validation, file = cfg$val_workspace)
-# Remove unused variables
-rm(gams_runtime, validation)
-
-# Copy important files into output_folder (after REMIND execution)
-for (file in cfg$files2export$end)
-  file.copy(file, cfg$results_folder, overwrite = TRUE)
-
-# Postprocessing / Output Generation
-output    <- cfg$output
-outputdir <- cfg$results_folder
-sys.source("output.R",envir=new.env())
-
diff --git a/scripts/run_submit/submit.cmd b/scripts/run_submit/submit.cmd
deleted file mode 100644
index 0204d41..0000000
--- a/scripts/run_submit/submit.cmd
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-
-#--- Job Submission parameters ------
-#SBATCH --qos=medium
-#SBATCH --job-name=__JOB_NAME__
-#SBATCH --output=log.txt
-#SBATCH --tasks-per-node=2
-#SBATCH --mail-type=END
-#------------------------------------------------
-
-# report git revision info and changes in the files
-git rev-parse --short HEAD
-git status
-
-# start gams job
-Rscript submit.R
diff --git a/scripts/run_submit/submit_par.cmd b/scripts/run_submit/submit_par.cmd
deleted file mode 100644
index efba220..0000000
--- a/scripts/run_submit/submit_par.cmd
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-#--- Job Submission parameters ------
-#SBATCH --qos=short
-#SBATCH --job-name=__JOB_NAME__
-#SBATCH --output=log.txt
-#SBATCH --nodes=1
-#SBATCH --tasks-per-node=12
-#SBATCH --mail-type=END
-#------------------------------------------------
-
-# report git revision info and changes in the files
-git rev-parse --short HEAD
-git status
-
-# start gams job
-Rscript submit.R
diff --git a/scripts/run_submit/submit_par16.cmd b/scripts/run_submit/submit_par16.cmd
deleted file mode 100644
index 8018105..0000000
--- a/scripts/run_submit/submit_par16.cmd
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-#--- Job Submission parameters ------
-#SBATCH --qos=short
-#SBATCH --job-name=__JOB_NAME__
-#SBATCH --output=log.txt
-#SBATCH --nodes=1
-#SBATCH --tasks-per-node=16
-#SBATCH --mail-type=END
-#------------------------------------------------
-
-# report git revision info and changes in the files
-git rev-parse --short HEAD
-git status
-
-# start gams job
-Rscript submit.R
diff --git a/scripts/run_submit/submit_short.cmd b/scripts/run_submit/submit_short.cmd
deleted file mode 100644
index da6cbea..0000000
--- a/scripts/run_submit/submit_short.cmd
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-#--- Job Submission parameters ------
-#SBATCH --qos=short
-#SBATCH --job-name=__JOB_NAME__
-#SBATCH --output=log.txt
-#SBATCH --mail-type=END
-#------------------------------------------------
-
-# report git revision info and changes in the files
-git rev-parse --short HEAD
-git status
-
-# start gams job
-Rscript submit.R
diff --git a/scripts/run_submit/run_compareScenarios.R b/scripts/utils/run_compareScenarios.R
similarity index 100%
rename from scripts/run_submit/run_compareScenarios.R
rename to scripts/utils/run_compareScenarios.R
diff --git a/start.R b/start.R
deleted file mode 100644
index e4de544..0000000
--- a/start.R
+++ /dev/null
@@ -1,26 +0,0 @@
-# |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
-# |  authors, and contributors see CITATION.cff file. This file is part
-# |  of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
-# |  AGPL-3.0, you are granted additional permissions described in the
-# |  REMIND License Exception, version 1.0 (see LICENSE file).
-# |  Contact: remind@pik-potsdam.de
-
-##########################################################
-#### Script to start a REMIND run ####
-##########################################################
-
-library(lucode, quietly = TRUE,warn.conflicts =FALSE)
-library(magclass, quietly = TRUE,warn.conflicts =FALSE)
-
-#Here the function start_run(cfg) is loaded which is needed to start REMIND runs
-#The function needs information about the configuration of the run. This can be either supplied as a list of settings or as a file name of a config file
-source("scripts/start_functions.R")
-
-#Load config-file
-cfg_REMIND <- "default.cfg"
-readArgs("cfg_REMIND")
-
-#start REMIND run
-start_run(cfg_REMIND)
-#rep = read.report("coupling.mif")
-#start_reportrun(rep)
diff --git a/start_bundle.R b/start_bundle.R
deleted file mode 100644
index 75cb017..0000000
--- a/start_bundle.R
+++ /dev/null
@@ -1,126 +0,0 @@
-# |  (C) 2006-2019 Potsdam Institute for Climate Impact Research (PIK)
-# |  authors, and contributors see CITATION.cff file. This file is part
-# |  of REMIND and licensed under AGPL-3.0-or-later. Under Section 7 of
-# |  AGPL-3.0, you are granted additional permissions described in the
-# |  REMIND License Exception, version 1.0 (see LICENSE file).
-# |  Contact: remind@pik-potsdam.de
-source("scripts/start_functions.R")
-
-require(lucode, quietly = TRUE, warn.conflicts = FALSE)
-
-.setgdxcopy <- function(needle, stack, new) {
-  # delete entries in stack that contain needle and append new
-  out <- c(stack[-grep(needle, stack)], new)
-  return(out)
-}
-
-# check for config file parameter
-config.file <- commandArgs(trailingOnly = TRUE)[1]
-if (  is.na(config.file)                          # no parameter given
-    | -1 == file.access(config.file, mode = 4))   # if file can't be read
-  config.file <- "config/scenario_config.csv" 
-
-cat(paste("reading config file", config.file, "\n"))
-  
-# Read-in the switches table, use first column as row names
-settings <- read.csv2(config.file, stringsAsFactors = FALSE, row.names = 1, 
-                      comment.char = "#", na.strings = "")
-
-# Select scenarios that are flagged to start
-scenarios  <- settings[settings$start==1,]
-
-if (length(grep("\\.",rownames(scenarios))) > 0) stop("One or more titles contain dots - GAMS would not tolerate this, and quit working at a point where you least expect it. Stopping now. ")
-
-# Modify and save cfg for all runs
-for (scen in rownames(scenarios)) {
-  #source cfg file for each scenario to avoid duplication of gdx entries in files2export
-  source("config/default.cfg")
-  
-  # Have the log output written in a file (not on the screen)
-  cfg$logoption  <- 2
-  cfg$sequential <- NA
-  
-  # Edit run title
-  cfg$title <- scen
-  cat("\n", scen, "\n")
-
-  # Edit main file of model
-  if( "model" %in% names(scenarios)){
-    cfg$model <- scenarios[scen,"model"] 
-  }
-
-  # Edit regional aggregation
-  if( "regionmapping" %in% names(scenarios)){
-    cfg$regionmapping <- scenarios[scen,"regionmapping"] 
-  }
-  
-  # Edit input data revision
-  if( "revision" %in% names(scenarios)){
-    cfg$revision <- scenarios[scen,"revision"] 
-  }
-
-  # Edit switches in default.cfg according to the values given in the scenarios table
-  for (switchname in intersect(names(cfg$gms), names(scenarios))) {
-    cfg$gms[[switchname]] <- scenarios[scen,switchname]
-  }
-
-  # Set reporting script
-  if( "output" %in% names(scenarios)){
-    cfg$output <- paste0("c(\"",gsub(",","\",\"",gsub(", ",",",scenarios[scen,"output"])),"\")")
-  }
-  
-  # check if full input.gdx path is provided and, if not, search for correct path
-  if (!substr(settings[scen,"path_gdx"], nchar(settings[scen,"path_gdx"])-3, nchar(settings[scen,"path_gdx"])) == ".gdx"){
-    #if there is no correct scenario folder within the output folder path provided, take the config/input.gdx
-    if(length(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T))==0){
-      settings[scen,"path_gdx"] <- "config/input.gdx"
-    #if there is only one instance of an output folder with that name, take the fulldata.gdx from this 
-    } else if (length(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T))==1){
-      settings[scen,"path_gdx"] <- paste0(settings[scen,"path_gdx"],"/",
-                                          grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T),"/fulldata.gdx")
-    } else {
-      #if there are multiple instances, take the newest one
-      settings[scen,"path_gdx"] <- paste0(settings[scen,"path_gdx"],"/",
-                                          substr(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T),1,
-                                                 nchar(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T))-19)[1],      
-      max(substr(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T),
-                               nchar(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T))-18,
-                               nchar(grep(scen,list.files(path=settings[scen,"path_gdx"]),value=T)))),"/fulldata.gdx")
-    }
-  }
-  
-  # if the above has not created a path to a valid gdx, take config/input.gdx
-  if (!file.exists(settings[scen,"path_gdx"])){
-    settings[scen,"path_gdx"] <- "config/input.gdx"
-    #if even this is not existent, stop
-    if (!file.exists(settings[scen,"path_gdx"])){
-    stop("Cant find a gdx under path_gdx, please specify full path to gdx or else location of output folder that contains previous run")
-    }
-  }
- 
-  # Define path where the GDXs will be taken from
-  gdxlist <- c(input.gdx     = settings[scen, "path_gdx"],
-               input_ref.gdx = settings[scen, "path_gdx_ref"],
-               input_bau.gdx = settings[scen, "path_gdx_bau"])
-
-  # Remove potential elements that contain ".gdx" and append gdxlist
-  cfg$files2export$start <- .setgdxcopy(".gdx", cfg$files2export$start, gdxlist)
-
-  # add gdx information for subsequent runs
-  cfg$subsequentruns        <- rownames(settings[settings$path_gdx_ref == scen & !is.na(settings$path_gdx_ref) & settings$start == 1,])
-  cfg$RunsUsingTHISgdxAsBAU <- rownames(settings[settings$path_gdx_bau == scen & !is.na(settings$path_gdx_bau) & settings$start == 1,])
-  
-  # save the cfg data for later start of subsequent runs (after preceding run finished)
-  cat("Writing cfg to file\n")
-  save(cfg,file=paste0(scen,".RData"))
-}
-
-# Directly start runs that have a gdx file location given as path_gdx_ref or where this field is empty
-for (scen in rownames(scenarios)) {
-  if (substr(settings[scen,"path_gdx_ref"], nchar(settings[scen,"path_gdx_ref"])-3, nchar(settings[scen,"path_gdx_ref"])) == ".gdx" 
-     | is.na(settings[scen,"path_gdx_ref"])){
-   cat("Starting: ",scen,"\n")
-   load(paste0(scen,".RData"))
-   start_run(cfg)
-   }
-}
-- 
GitLab