diff --git a/Inst_eddies/Tests/long_tests.json b/Inst_eddies/Tests/long_tests.json index 3dcee46aaeb8694463d6098c950e07e589391c04..4ff37cec549989b5b791695c147eaae5ce5c7541 100644 --- a/Inst_eddies/Tests/long_tests.json +++ b/Inst_eddies/Tests/long_tests.json @@ -6,15 +6,14 @@ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/Tests/test_set_all_outerm" + [ + "$build_dir/Inst_eddies/Tests/test_set_all_outerm", + "$src_dir/Inst_eddies/Tests/Input/h_region_3.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_region_3.nc" + ] ], "title": "Set_all_outerm", - "create_file": ["config_nml.txt", "&config_nml min_radius = 20./\n"], - "symlink": - [ - ["$src_dir/Inst_eddies/Tests/Input/h_region_3.nc", "h.nc"], - ["$src_dir/Inst_eddies/Tests/Input/uv_region_3.nc", "uv.nc"] - ] + "create_file": ["config_nml.txt", "&config_nml min_radius = 20./\n"] }, { "commands": @@ -23,14 +22,13 @@ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/h_region_3.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_region_3.nc" + ] ], "title": "Extraction_eddies_region_3", - "symlink": - [ - ["$src_dir/Inst_eddies/Tests/Input/h_region_3.nc", "h.nc"], - ["$src_dir/Inst_eddies/Tests/Input/uv_region_3.nc", "uv.nc"] - ], "create_file": ["config_nml.txt", "&config_nml min_amp = 0./\n"], "input": "&dates_nml date = 20454/\n", "description": "Larger region, 120 x 120. Includes degenerate extrema." @@ -42,14 +40,13 @@ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/h_region_3.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_region_3.nc" + ] ], "title": "Extraction_eddies_region_3_min", - "symlink": - [ - ["$src_dir/Inst_eddies/Tests/Input/h_region_3.nc", "h.nc"], - ["$src_dir/Inst_eddies/Tests/Input/uv_region_3.nc", "uv.nc"] - ], "create_file": ["config_nml.txt", "&config_nml /\n"], "input": "&dates_nml date = 20454/\n", "description": @@ -62,14 +59,13 @@ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/h_region_5.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_region_5.nc" + ] ], "title": "Extraction_eddies_region_5", - "symlink": - [ - ["$src_dir/Inst_eddies/Tests/Input/h_region_5.nc", "h.nc"], - ["$src_dir/Inst_eddies/Tests/Input/uv_region_5.nc", "uv.nc"] - ], "create_file": ["config_nml.txt", "&config_nml /\n"], "input": "&dates_nml date = 20454/\n", "description": "Same as Extraction_eddies_region_4 with larger domain.", diff --git a/Inst_eddies/Tests/short_tests.json b/Inst_eddies/Tests/short_tests.json index 7e60c76ab13091840735981997b1f6490c3e97c0..324c7d54f291a5f0eba1be7b687e5816eba51144 100644 --- a/Inst_eddies/Tests/short_tests.json +++ b/Inst_eddies/Tests/short_tests.json @@ -5,14 +5,6 @@ "title": "Get_1_outerm", "symlink": [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ], [ "$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points_get_1_outerm.csv", "outside_points.csv" @@ -21,7 +13,11 @@ "commands": [ ["mkdir", "-p", "SHPC/Slice_0/Cyclones"], - "$build_dir/Inst_eddies/Tests/test_get_1_outerm" + [ + "$build_dir/Inst_eddies/Tests/test_get_1_outerm", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc" + ] ] }, { @@ -31,21 +27,15 @@ "create_file": ["config_nml.txt", "&config_nml /\n"], "title": "Get_1_outerm_noise_2_8", "symlink": - [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ], - "$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points.csv" - ], + ["$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points.csv"], "commands": [ ["mkdir", "-p", "SHPC/Slice_0/Cyclones"], - "$build_dir/Inst_eddies/Tests/test_get_1_outerm" + [ + "$build_dir/Inst_eddies/Tests/test_get_1_outerm", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc" + ] ] }, { @@ -55,14 +45,6 @@ "title": "Get_1_outerm_noise_2", "symlink": [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ], [ "$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points_get_1_outerm_noise_2.csv", "outside_points.csv" @@ -71,7 +53,11 @@ "commands": [ ["mkdir", "-p", "SHPC/Slice_0/Cyclones"], - "$build_dir/Inst_eddies/Tests/test_get_1_outerm" + [ + "$build_dir/Inst_eddies/Tests/test_get_1_outerm", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc" + ] ] }, { @@ -252,14 +238,6 @@ "create_file": ["config_nml.txt", "&config_nml /\n"], "symlink": [ - [ - "$src_dir/Inst_eddies/Tests/Input/h_outermost.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/uv_outermost.nc", - "uv.nc" - ], [ "$src_dir/Inst_eddies/Tests/Input/empty_outside_points.csv", "outside_points.csv" @@ -271,6 +249,8 @@ ["mkdir", "-p", "SHPC/Slice_0/Cyclones"], [ "$build_dir/Inst_eddies/Tests/test_set_max_speed", + "$src_dir/Inst_eddies/Tests/Input/h_outermost.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_outermost.nc", "$PWD/Get_1_outerm/SHPC" ] ], @@ -279,23 +259,15 @@ { "create_file": ["config_nml.txt", "&config_nml /\n"], "symlink": - [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ], - "$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points.csv" - ], + ["$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points.csv"], "title": "Set_max_speed_noise", "commands": [ ["mkdir", "-p", "SHPC/Slice_0/Cyclones"], [ "$build_dir/Inst_eddies/Tests/test_set_max_speed", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", "$PWD/Get_1_outerm_noise_2_8/SHPC" ] ], @@ -305,8 +277,6 @@ "create_file": ["config_nml.txt", "&config_nml /\n"], "symlink": [ - ["$src_dir/Inst_eddies/Tests/Input/degenerated_SSH.nc", "h.nc"], - ["$src_dir/Inst_eddies/Tests/Input/degenerated_SSH.nc", "uv.nc"], [ "$src_dir/Inst_eddies/Tests/Input/empty_outside_points.csv", "outside_points.csv" @@ -319,6 +289,8 @@ ["mkdir", "-p", "SHPC/Slice_0/Anticyclones"], [ "$build_dir/Inst_eddies/Tests/test_set_max_speed", + "$src_dir/Inst_eddies/Tests/Input/degenerated_SSH.nc", + "$src_dir/Inst_eddies/Tests/Input/degenerated_SSH.nc", "$src_dir/Inst_eddies/Tests/Input/SHPC_degenerate" ] ], @@ -327,23 +299,17 @@ { "create_file": ["config_nml.txt", "&config_nml min_amp = 0./\n"], "input": "&dates_nml date = 20454/\n", - "symlink": [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ] - ], "title": "Extraction_eddies_region_1", "commands": [ [ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc" + ] ] }, { @@ -351,40 +317,33 @@ "Same as Extraction_eddies_region_1 but with non-zero minimal amplitude.", "create_file": ["config_nml.txt", "&config_nml /\n"], "input": "&dates_nml date = 20454/\n", - "symlink": - [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ] - ], "title": "Extraction_eddies_region_1_noise", "commands": [ [ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc" + ] ] }, { "create_file": ["config_nml.txt", "&config_nml min_amp = 0./\n"], "input": "&dates_nml date = 20454/\n", - "symlink": [ - ["$src_dir/Inst_eddies/Tests/Input/h_region_2.nc", "h.nc"], - ["$src_dir/Inst_eddies/Tests/Input/uv_region_2.nc", "uv.nc"] - ], "title": "Extraction_eddies_region_2", "commands": [ [ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/h_region_2.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_region_2.nc" + ] ] }, { @@ -449,16 +408,12 @@ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/Tests/test_set_all_outerm" - ], - "symlink": - [ - ["$src_dir/Inst_eddies/Tests/Input/h_2006_01_01_coarse.nc", "h.nc"], [ - "$src_dir/Inst_eddies/Tests/Input/uv_2006_01_01_coarse.nc", - "uv.nc" + "$build_dir/Inst_eddies/Tests/test_set_all_outerm", + "$src_dir/Inst_eddies/Tests/Input/h_2006_01_01_coarse.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_2006_01_01_coarse.nc" ] - ] + ] }, { "description": "Periodic domain.", @@ -468,23 +423,17 @@ "&config_nml min_amp = 0., MAX_RADIUS_deg = 80., 72./\n" ], "input": "&dates_nml date = 20454/\n", - "symlink": [ - [ - "$src_dir/Inst_eddies/Tests/Input/h_2006_01_01_coarse.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/uv_2006_01_01_coarse.nc", - "uv.nc" - ] - ], "title": "Extraction_eddies_periodic", "commands": [ [ "mkdir", "-p", "SHPC/Slice_0/Cyclones", "SHPC/Slice_0/Anticyclones" ], - "$build_dir/Inst_eddies/inst_eddies" + [ + "$build_dir/Inst_eddies/inst_eddies", + "$src_dir/Inst_eddies/Tests/Input/h_2006_01_01_coarse.nc", + "$src_dir/Inst_eddies/Tests/Input/uv_2006_01_01_coarse.nc" + ] ] }, { @@ -494,14 +443,6 @@ "title": "Extr_proj", "symlink": [ - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "h.nc" - ], - [ - "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", - "uv.nc" - ], [ "$src_dir/Inst_eddies/Tests/Input/Region_1/outside_points_get_1_outerm.csv", "outside_points.csv" @@ -510,7 +451,11 @@ "commands": [ ["mkdir", "-p", "SHPC/Slice_0/Cyclones"], - "$build_dir/Inst_eddies/Tests/test_get_1_outerm" + [ + "$build_dir/Inst_eddies/Tests/test_get_1_outerm", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc", + "$src_dir/Inst_eddies/Tests/Input/Region_1/huv_region_1_2006_01_01.nc" + ] ] }, { diff --git a/Inst_eddies/Tests/test_set_max_speed.f90 b/Inst_eddies/Tests/test_set_max_speed.f90 index 1bdc7527d182ac5eef8a247b5c1d19a21f905691..68d5cf54684f9c4fde340468b62d33fcb9e0b3bd 100644 --- a/Inst_eddies/Tests/test_set_max_speed.f90 +++ b/Inst_eddies/Tests/test_set_max_speed.f90 @@ -30,12 +30,12 @@ program test_set_max_speed !---------------------------------------------------------------- - call get_command_arg_dyn(1, shpc_dir, "Required argument: SHPC-directory") print *, "test_set_max_speed: cyclone = ? " read *, cyclone call config call input_ssh(corner, step, nlon, nlat, periodic, ssh, u, v) print *, "test_set_max_speed: Reading from shapefiles..." + call get_command_arg_dyn(3, shpc_dir, "Required 3rd argument: SHPC-directory") call shpc_open(hshp, shpc_dir, cyclone, slice = 0, pszaccess = "rb") call read_eddy(e, d, i, hshp, ishape = 0) CALL shpc_close(hshp) diff --git a/Inst_eddies/input_ssh.f90 b/Inst_eddies/input_ssh.f90 index 9726cef49fe953ebb592816779cb3659e0c6d9db..e6f8d5b89394cfc3da9bfe69ca68616a21f059e5 100644 --- a/Inst_eddies/input_ssh.f90 +++ b/Inst_eddies/input_ssh.f90 @@ -13,7 +13,7 @@ contains use, intrinsic:: ieee_arithmetic, only: ieee_value, IEEE_QUIET_NAN ! Libraries: - use jumble, only: new_unit, assert, deg_to_rad, twopi + use jumble, only: new_unit, assert, deg_to_rad, twopi, get_command_arg_dyn use netcdf95, only: nf95_open, nf95_find_coord, nf95_inquire_dimension, & nf95_get_var, nf95_close, nf95_nowrite @@ -53,13 +53,14 @@ contains real corner_deg_new(2), step_deg_new(2) real lon_max, lat_max ! longitude and latitude, in degrees integer copy - + character(len = :), allocatable:: fname ! file name namelist /grid_nml/ corner_deg, step_deg, nlon, nlat !---------------------------------------------------------------------- inquire(file = "SHPC/grid_nml.txt", exist = exist) - call nf95_open("h.nc", nf95_nowrite, ncid) + call get_command_arg_dyn(1, fname, "Required arguments: h-file uv-file") + call nf95_open(fname, nf95_nowrite, ncid) call nf95_find_coord(ncid, dimid = dimid, varid = varid, & std_name = "longitude") call new_unit(unit) @@ -139,7 +140,8 @@ contains ! works with an upper limit for valid values.) call nf95_close(ncid) - call nf95_open("uv.nc", nf95_nowrite, ncid) + call get_command_arg_dyn(2, fname, "Required arguments: h-file uv-file") + call nf95_open(fname, nf95_nowrite, ncid) call get_var(periodic, max_radius(1), u, ncid, nlon, name = "ugos", & new_fill_value = ieee_value(0., IEEE_QUIET_NAN)) call get_var(periodic, max_radius(1), v, ncid, nlon, name = "vgos", & diff --git a/Inst_eddies/inst_eddies.py.in b/Inst_eddies/inst_eddies.py.in index 695104ff7386efa8bc40278692e43d97a16b29ef..5b837cd13373f86b781c1b1618ca73fc5c127cf6 100644 --- a/Inst_eddies/inst_eddies.py.in +++ b/Inst_eddies/inst_eddies.py.in @@ -75,15 +75,12 @@ def loop_inst_eddies(files, bbox, d, my_slice): nco_instance.ncpdq(nc_file, output = "unpacked.nc", options = ["--unpack"]) - os.symlink("unpacked.nc", "h.nc") - os.symlink("unpacked.nc", "uv.nc") elapsed_NCO = time.perf_counter() - my_pc my_pc = time.perf_counter() - subprocess.run(inst_eddies_exe, check = True, input = "&dates_nml " - f"date = {d}, slice = {my_slice}/\n", text = True) + subprocess.run([inst_eddies_exe, "unpacked.nc", "unpacked.nc"], + check = True, input = f"&dates_nml date = {d}, " + f"slice = {my_slice}/\n", text = True) elapsed_Fortran = time.perf_counter() - my_pc - os.remove("h.nc") - os.remove("uv.nc") writer.writerow([d, elapsed_NCO, elapsed_Fortran]) else: print("inst_eddies.loop_inst_eddies: Missing file:", nc_file)