From ff20babbc4fd373ecbf988f6a5df0221a491f84a Mon Sep 17 00:00:00 2001 From: Niels Fuchs <niels.fuchs@uni-hamburg.de> Date: Mon, 11 Apr 2022 01:09:29 +0200 Subject: [PATCH] add Configuration Script for MOSAiC data --- .../build_config_files/build_config_MOSAiC.py | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 Python_files/Code/build_config_files/build_config_MOSAiC.py diff --git a/Python_files/Code/build_config_files/build_config_MOSAiC.py b/Python_files/Code/build_config_files/build_config_MOSAiC.py new file mode 100644 index 0000000..d8991c4 --- /dev/null +++ b/Python_files/Code/build_config_files/build_config_MOSAiC.py @@ -0,0 +1,119 @@ +import json +from func_bound_values import * + +# set constants +rho_l = 1028 +c_l = 3400 + +# ********************************************************************************************************************** +# Initialize array containig all parameters and set path to its directory +# ********************************************************************************************************************** +config = {} +path_config = r'../../../Run_specifics/' +path_input = '../../../input/' + +# ********************************************************************************************************************** +# Set description of run +# ********************************************************************************************************************** +description = "Testcase_MOSAiC" +file = open(path_config + r"description.txt", "w") +file.write(description) +file.close() + +# ********************************************************************************************************************** +# Initial layer thickness, timestep, output time and simulation time +# ********************************************************************************************************************** +config['dt'] = 20. # time increment [s]] +config['time'] = 0.0 # initial value of time [s] +config['time_out'] = 86400. # time between outputs [s] +config['time_total'] = 55468800. # total length of simulation [s] + +# ********************************************************************************************************************** +# Time settings needed when input is given +# ********************************************************************************************************************** +config['timestep_data'] = 60 # timestep of input data [s] +config['length_input'] = config['time_total'] / 60. + 1 # Length of your input files. Must match with timestep_data + +# ********************************************************************************************************************** +# Layer settings and allocation +# ********************************************************************************************************************** +config['thick_0'] = 0.02 +config['Nlayer'] = 80 +config['N_active'] = 1 +config['N_top'] = 20 +config['N_bottom'] = 20 +config['N_middle'] = config['Nlayer'] - config['N_top'] - config['N_bottom'] + +# ********************************************************************************************************************** +# Flags +# ********************************************************************************************************************** +# ________________________top heat flux____________ +config['boundflux_flag'] = 2 +config['albedo_flag'] = 2 +# ________________________brine_dynamics____________ +config['grav_heat_flag'] = 1 +config['flush_heat_flag'] = 1 +config['flood_flag'] = 2 +config['flush_flag'] = 5 +config['grav_flag'] = 2 +config['harmonic_flag'] = 2 +# ________________________Salinity____________ +config['prescribe_flag'] = 1 +config['salt_flag'] = 1 +# ________________________bottom setting______________________ +config['turb_flag'] = 1 +config['bottom_flag'] = 1 +config['tank_flag'] = 1 +# ________________________snow______________________ +config['precip_flag'] = 1 +config['freeboard_snow_flag'] = 0 # < Niels, 2017 +config['snow_flush_flag'] = 1 # < Niels, 2017 +config['styropor_flag'] = 0 +config['lab_snow_flag'] = 0 +# ________________________debugging_____________________ +config['debug_flag'] = 1 # set to 2 for output of all ice layers each timestep +# ________________________bgc_______________________ +config['bgc_flag'] = 1 +# ________________________initial state_______________________ +config['initial_state_flag'] = 1 # 2 if initial state is given + +# ********************************************************************************************************************** +# Tank and turbulent fluxes settings +# ********************************************************************************************************************** +config['tank_depth'] = 0 +config['alpha_flux_stable'] = 0 +config['alpha_flux_instable'] = 0 + +# ********************************************************************************************************************** +# BGC Settings +# ********************************************************************************************************************** +config['N_bgc'] = 2 +config['bgc_bottom_1'] = 400 +config['bgc_bottom_2'] = 500 + +# ********************************************************************************************************************** +# Construct Input files +# ********************************************************************************************************************** + +# Set constant inputs +const_inputs = {'T_bottom': -1.8, 'S_bu_bottom': 34, + 'fl_q_bottom': 1., 'precip_s':0.} +for input in list(const_inputs.keys()): + data = np.ones(int(config['length_input'])) * const_inputs[input] + np.savetxt(path_input + input + '.txt', data) + +# ********************************************************************************************************************** +# setting the initial values of the top and only layer - not needed if initial ice properties are given - set to zero +# ********************************************************************************************************************** +config['thick_1'] = config['thick_0'] +config['m_1'] = config['thick_0'] * rho_l +config['S_abs_1'] = config['m_1'] * const_inputs['S_bu_bottom'] +config['H_abs_1'] = config['m_1'] * const_inputs['T_bottom'] * c_l + +# ********************************************************************************************************************** +# Write init to .json file +# ********************************************************************************************************************** +json_object = json.dumps(config, indent=4) + +with open(path_config + "config.json", "w") as outfile: + outfile.write(json_object) -- GitLab