import os import sys # check the python version if float(sys.version[:3]) <= 3.6: print("This script require Python 3.6 !") print("Try:") print("\n\tmodule load python3\n\n") print("and restart this script again.") print("Aborting...") sys.exit(1) if len(sys.argv) < 4: print('Bad arguments:', sys.argv) print('Usage:') print('\n\t python3 update_ensemble_experiment.py where experiment ensemble_size run_folder_name\n') print('Arguments:\n') print('\twhere :\t\t\tWhere the experiment ensemble folders are located.') print('\texperiment :\t\tName of the experiment.') print('\tensemble_size :\t\tSize of the ensemble.') print('\trun_folder_name :\t\tOptional. Addtional name added to the "run_" folder name in plasim folder. Used to selected experiment executable. If not provide, assumes run folder is "run".') sys.exit(0) home_dir = os.getenv("HOME") scratch_dir = os.getenv("SCRATCH") plasim_dir = home_dir + "/models/PLASIM/" where = sys.argv[1] experiment = sys.argv[2] ensemble_size = int(sys.argv[3]) run_folder = plasim_dir+"plasim/run" if len(sys.argv) == 5: run_folder_ext = sys.argv[4] run_folder += '_'+run_folder_ext if not os.path.isdir(run_folder): print("PLASIM run directory missing!") print("Run "+plasim_dir+"/most.x first.") print("Aborting...") sys.exit(1) # Check if the experiment folder exists experiment_folder = where+"/"+experiment+"/" if not os.path.isdir(experiment_folder): print("Experiment folder not found!") print("Aborting...") sys.exit(1) print('Updating the ensemble folders namelists...') for i in range(1, ensemble_size+1): member_number = str(i).rjust(2, '0') ensemble_member_folder = experiment_folder+'run_'+experiment+'_'+member_number os.system('cp -r '+run_folder+'/*_namelist '+ensemble_member_folder) print('Experiment ensemble updated and available in the folder:') print(experiment_folder)