From 4deae0771cd9b92e091c68d32c61bdfd80cbcc2d Mon Sep 17 00:00:00 2001 From: Lionel GUEZ <guez@lmd.ens.fr> Date: Tue, 9 Jan 2018 14:47:31 +0100 Subject: [PATCH] In test_mean_speed, do not read the names of files on the command line because the order is not obvious. In test_mean_speed and test_set_max_speed, do not read primary variables with nf95_gw_var so the primary variables are allowed to have or not a degenerate dimension. --- Sources/local_extrema.f | 1 - Tests/test_mean_speed.f | 49 +++++++++++++------------------ Tests/test_set_max_speed.f | 33 ++++++++++++--------- Tests/tests.json | 59 +++++++++++++++++++++----------------- 4 files changed, 73 insertions(+), 69 deletions(-) diff --git a/Sources/local_extrema.f b/Sources/local_extrema.f index bcb80210..b9145b73 100644 --- a/Sources/local_extrema.f +++ b/Sources/local_extrema.f @@ -27,7 +27,6 @@ contains ! innermost_level < extremum for a maximum, > extremum for a ! minimum. - logical, intent(out), allocatable:: local_min(:) ! (n_extr) ! Local: diff --git a/Tests/test_mean_speed.f b/Tests/test_mean_speed.f index f0f78fc6..22b2c64b 100644 --- a/Tests/test_mean_speed.f +++ b/Tests/test_mean_speed.f @@ -5,9 +5,9 @@ program test_mean_speed use contour_531, only: polyline use mean_speed_m, only: mean_speed use netcdf, only: nf90_nowrite - use netcdf95, only: nf95_open, nf95_close, nf95_inq_varid, nf95_gw_var, & - nf95_get_var - use nr_util, only: pi, assert + use netcdf95, only: nf95_open, nf95_close, nf95_inq_varid, nf95_get_var, & + find_coord, nf95_inquire_dimension + use nr_util, only: pi use shapelib, only: shpclose, shpfileobject, shpobject use shapelib_03, only: shp_open_03, shp_read_object_03 @@ -15,9 +15,9 @@ program test_mean_speed real m, corner(2) real:: center(2) = [9.625, - 33.875] - integer ncid, varid, length, status - character(len = :), allocatable:: velocity_file, shapefile - real, allocatable:: u(:, :), v(:, :) ! wind, in m s-1 + integer ncid, varid, dimid + integer nlon, nlat + real, allocatable:: u(:, :), v(:, :) ! (nlon, nlat) wind, in m s-1 TYPE(shpfileobject) hshp TYPE(shpobject) psobject type(polyline) p @@ -27,41 +27,32 @@ program test_mean_speed !--------------------------------------------------------------------- - call assert(COMMAND_ARGUMENT_COUNT() == 2, & - "Required arguments: velocity-file shapefile") - - call get_command_argument(number = 1, length = length, status = status) - allocate(character(len = length):: velocity_file) - call get_command_argument(1, velocity_file) - - call get_command_argument(number = 2, length = length, status = status) - allocate(character(len = length):: shapefile) - call get_command_argument(2, shapefile) - write(unit = error_unit, nml = main_nml) write(unit = error_unit, fmt = *) "Enter namelist main_nml." read(unit = *, nml = main_nml) write(unit = *, nml = main_nml) - print *, "Reading from ", velocity_file, "..." - call nf95_open(velocity_file, nf90_nowrite, ncid) + call nf95_open("uv.nc", nf90_nowrite, ncid) - call nf95_inq_varid(ncid, "u", varid) - call nf95_gw_var(ncid, varid, u) - - call nf95_inq_varid(ncid, "v", varid) - call nf95_gw_var(ncid, varid, v) - - call nf95_inq_varid(ncid, "lon", varid) + call find_coord(ncid, dimid = dimid, varid = varid, std_name = "longitude") + call nf95_inquire_dimension(ncid, dimid, nclen = nlon) call nf95_get_var(ncid, varid, corner(1)) - call nf95_inq_varid(ncid, "lat", varid) + call find_coord(ncid, dimid = dimid, varid = varid, std_name = "latitude") + call nf95_inquire_dimension(ncid, dimid, nclen = nlat) call nf95_get_var(ncid, varid, corner(2)) + allocate(u(nlon, nlat), v(nlon, nlat)) + + call nf95_inq_varid(ncid, "u", varid) + call nf95_get_var(ncid, varid, u) + + call nf95_inq_varid(ncid, "v", varid) + call nf95_get_var(ncid, varid, v) + call nf95_close(ncid) - print *, "Reading from ", shapefile, "..." - call shp_open_03(shapefile, "rb", hshp) + call shp_open_03("contour", "rb", hshp) call shp_read_object_03(hshp, 0, psobject) CALL shpclose(hshp) diff --git a/Tests/test_set_max_speed.f b/Tests/test_set_max_speed.f index 0d58ea24..956b16e2 100644 --- a/Tests/test_set_max_speed.f +++ b/Tests/test_set_max_speed.f @@ -6,7 +6,7 @@ program test_set_max_speed use derived_types, only: eddy use netcdf, only: nf90_nowrite use netcdf95, only: nf95_open, nf95_close, nf95_inq_varid, nf95_get_var, & - nf95_gw_var + find_coord, nf95_inquire_dimension use nr_util, only: pi use set_max_speed_m, only: set_max_speed use shapelib, only: shpt_polygon, shpfileobject, ftdouble, shpclose, & @@ -16,15 +16,16 @@ program test_set_max_speed implicit none - integer ncid, varid - real, allocatable:: ssh(:, :) ! sea-surface height, in m - real, allocatable:: u(:, :), v(:, :) ! wind, in m s-1 + integer ncid, varid, dimid + integer nlon, nlat + real, allocatable:: ssh(:, :) ! (nlon, nlat) sea-surface height, in m + real, allocatable:: u(:, :), v(:, :) ! (nlon, nlat) wind, in m s-1 type(eddy) e integer:: ind_targ_extr(2) = [5, 4] ! indices of the target extremum, relative to corner - integer, allocatable:: extr_map(:, :) ! map of extrema + integer, allocatable:: extr_map(:, :) ! (nlon, nlat) map of extrema real corner(2) real, parameter:: deg_over_rad = pi / 180. real, parameter:: rad_over_deg = 180. / pi @@ -48,33 +49,39 @@ program test_set_max_speed print *, "Reading from h.nc..." call nf95_open("h.nc", nf90_nowrite, ncid) - call nf95_inq_varid(ncid, "adt", varid) - call nf95_gw_var(ncid, varid, ssh) - - call nf95_inq_varid(ncid, "lon", varid) + call find_coord(ncid, dimid = dimid, varid = varid, std_name = "longitude") + call nf95_inquire_dimension(ncid, dimid, nclen = nlon) call nf95_get_var(ncid, varid, corner(1)) - call nf95_inq_varid(ncid, "lat", varid) + call find_coord(ncid, dimid = dimid, varid = varid, std_name = "latitude") + call nf95_inquire_dimension(ncid, dimid, nclen = nlat) call nf95_get_var(ncid, varid, corner(2)) + allocate(ssh(nlon, nlat)) + call nf95_inq_varid(ncid, "adt", varid) + call nf95_get_var(ncid, varid, ssh) + call nf95_close(ncid) print *, "Reading from uv.nc..." call nf95_open("uv.nc", nf90_nowrite, ncid) + allocate(u(nlon, nlat), v(nlon, nlat)) + call nf95_inq_varid(ncid, "u", varid) - call nf95_gw_var(ncid, varid, u) + call nf95_get_var(ncid, varid, u) call nf95_inq_varid(ncid, "v", varid) - call nf95_gw_var(ncid, varid, v) + call nf95_get_var(ncid, varid, v) call nf95_close(ncid) print *, "Reading from extr_map.nc..." call nf95_open("extr_map.nc", nf90_nowrite, ncid) + allocate(extr_map(nlon, nlat)) call nf95_inq_varid(ncid, "extr_map", varid) - call nf95_gw_var(ncid, varid, extr_map) + call nf95_get_var(ncid, varid, extr_map) call nf95_close(ncid) diff --git a/Tests/tests.json b/Tests/tests.json index b53e606e..7358111e 100644 --- a/Tests/tests.json +++ b/Tests/tests.json @@ -24,31 +24,31 @@ }, { "args" : ["$compil_prod_dir/test_local_extrema", - "$input_dir/h_test_region.nc"], + "$input_dir/h_region_1.nc"], "title" : "Local_extrema" }, { "args" : ["$compil_prod_dir/test_local_extrema", - "$input_dir/h_test_get_snapshot_larger.nc"], + "$input_dir/h_region_2.nc"], "title" : "Local_extrema_larger" }, { "args" : "$compil_prod_dir/test_get_1_outerm", - "required": [["$input_dir/h_test_region.nc", "h.nc"], + "required": [["$input_dir/h_region_1.nc", "h.nc"], ["$tests_old_dir/Local_extrema/test_local_extrema.nc", "extr_map.nc"]], "title" : "Get_1_outerm", "input" : "&main_nml /\n" }, { "args" : "$compil_prod_dir/test_get_1_outerm", - "required": [["$input_dir/h_test_region.nc", "h.nc"], + "required": [["$input_dir/h_region_1.nc", "h.nc"], ["$input_dir/extr_map_negative_2_8.nc", "extr_map.nc"]], "title" : "Get_1_outerm_noise_2_8", "input" : "&main_nml /\n" }, { "args" : "$compil_prod_dir/test_get_1_outerm", - "required": [["$input_dir/h_test_region.nc", "h.nc"], + "required": [["$input_dir/h_region_1.nc", "h.nc"], ["$input_dir/extr_map_negative_2.nc", "extr_map.nc"]], "title" : "Get_1_outerm_noise_2", "input" : "&main_nml /\n" @@ -66,16 +66,23 @@ "stdin" : "$stdin_dir/max_speed_contour_ssh_nml.txt" }, { - "args" : ["$compil_prod_dir/test_mean_speed", - "$input_dir/uv_test_region.nc", - "$tests_old_dir/Get_1_outerm/test_get_1_outerm"], + "args" : "$compil_prod_dir/test_mean_speed", + "required": [["$input_dir/uv_region_1.nc", "uv.nc"], + ["$tests_old_dir/Get_1_outerm/test_get_1_outerm.shp", + "contour.shp"], + ["$tests_old_dir/Get_1_outerm/test_get_1_outerm.dbf", + "contour.dbf"], + ["$tests_old_dir/Get_1_outerm/test_get_1_outerm.shx", + "contour.shx"]], "title" : "Mean_speed", "input" : "&main_nml /\n" }, { - "args" : ["$compil_prod_dir/test_mean_speed", - "$input_dir/uv_test_region.nc", - "$input_dir/outermost_contour_alt"], + "args" : "$compil_prod_dir/test_mean_speed", + "required": [["$input_dir/uv_region_1.nc","uv.nc"], + ["$input_dir/outermost_contour_alt.shp", "contour.shp"], + ["$input_dir/outermost_contour_alt.dbf", "contour.dbf"], + ["$input_dir/outermost_contour_alt.shx", "contour.shx"]], "title" : "Mean_speed_alt", "input" : "&main_nml /\n" }, @@ -93,8 +100,8 @@ { "args": "$compil_prod_dir/test_set_max_speed", "title": "Set_max_speed_noise", - "required": [["$input_dir/h_test_region.nc", "h.nc"], - ["$input_dir/uv_test_region.nc", "uv.nc"], + "required": [["$input_dir/h_region_1.nc", "h.nc"], + ["$input_dir/uv_region_1.nc", "uv.nc"], ["$input_dir/extr_map_negative_2_8.nc", "extr_map.nc"], "$tests_old_dir/Get_1_outerm_noise_2_8/test_get_1_outerm.shp", "$tests_old_dir/Get_1_outerm_noise_2_8/test_get_1_outerm.shx", @@ -103,36 +110,36 @@ }, { "args": ["$compil_prod_dir/test_set_all_outerm", - "$input_dir/h_comparison_region.nc"], + "$input_dir/h_region_3.nc"], "title": "Set_all_outerm", "input": "0.001\n" }, { "args": "$compil_prod_dir/test_get_snapshot", "title": "Get_snapshot", - "required": [["$input_dir/h_test_get_snapshot.nc", "h.nc"], - ["$input_dir/uv_test_get_snapshot.nc", "uv.nc"]], + "required": [["$input_dir/h_region_1.nc", "h.nc"], + ["$input_dir/uv_region_1.nc", "uv.nc"]], "input": "0.\n" }, { "args": "$compil_prod_dir/test_get_snapshot", "title": "Get_snapshot_noise", - "required": [["$input_dir/h_test_get_snapshot.nc", "h.nc"], - ["$input_dir/uv_test_get_snapshot.nc", "uv.nc"]], + "required": [["$input_dir/h_region_1.nc", "h.nc"], + ["$input_dir/uv_region_1.nc", "uv.nc"]], "input": "1e-3\n" }, { "args": "$compil_prod_dir/test_get_snapshot", "title": "Get_snapshot_larger", - "required": [["$input_dir/h_test_get_snapshot_larger.nc", "h.nc"], - ["$input_dir/uv_test_get_snapshot_larger.nc", "uv.nc"]], + "required": [["$input_dir/h_region_2.nc", "h.nc"], + ["$input_dir/uv_region_2.nc", "uv.nc"]], "input": "0.\n" }, { "args": "$compil_prod_dir/test_get_snapshot", "title": "Get_snapshot_larger_noise", - "required": [["$input_dir/h_test_get_snapshot_larger.nc", "h.nc"], - ["$input_dir/uv_test_get_snapshot_larger.nc", "uv.nc"]], + "required": [["$input_dir/h_region_2.nc", "h.nc"], + ["$input_dir/uv_region_2.nc", "uv.nc"]], "input": "1e-3\n" }, { @@ -148,16 +155,16 @@ { "args": "$compil_prod_dir/test_get_snapshot", "title": "Get_snapshot_120", - "required": [["$input_dir/h_comparison_region.nc", "h.nc"], - ["$input_dir/uv_comparison_region.nc", "uv.nc"]], + "required": [["$input_dir/h_region_3.nc", "h.nc"], + ["$input_dir/uv_region_3.nc", "uv.nc"]], "input": "0.\n", "description": "Larger region, 120 x 120. Includes degenerate extrema." }, { "args": "$compil_prod_dir/test_get_snapshot", "title": "Get_snapshot_120_min", - "required": [["$input_dir/h_comparison_region.nc", "h.nc"], - ["$input_dir/uv_comparison_region.nc", "uv.nc"]], + "required": [["$input_dir/h_region_3.nc", "h.nc"], + ["$input_dir/uv_region_3.nc", "uv.nc"]], "input": "1e-3\n", "description": "Same as Get_snapshot_120 except with 1 mm minimum amplitude." } -- GitLab