From 0f549ee8afa992c8c5c2c27f8fa163ec2534e995 Mon Sep 17 00:00:00 2001 From: Lionel GUEZ <guez@lmd.ens.fr> Date: Tue, 6 Nov 2018 16:48:22 +0100 Subject: [PATCH] Rename component number_vis_eddies of type snapshot to number_vis_extr. --- GNUmakefile | 6 +++--- Tests/read_snapshot.f | 16 ++++++++-------- Tests/test_get_snapshot.f | 8 ++++---- Tests/test_read_snapshot.f | 2 +- Tests/test_set_all_outerm.f | 6 +++--- derived_types.f | 10 ++++++---- dispatch_snapshot.f | 6 +++--- get_snapshot.f | 4 ++-- set_all_outerm.f | 14 +++++++------- successive_overlap.f | 2 +- 10 files changed, 38 insertions(+), 36 deletions(-) diff --git a/GNUmakefile b/GNUmakefile index e29763e0..642e4736 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,9 +1,11 @@ # This is a makefile for GNU make. +include ${general_compiler_options_dir}/settings.mk + # 1. Source files and libraries makefile_dir = . -VPATH = ${makefile_dir} ${makefile_dir}/Tests +VPATH += ${makefile_dir}/Tests src_test_local_extrema = test_local_extrema.f local_extrema.f @@ -51,8 +53,6 @@ execut = test_good_contour test_inside_4 test_get_1_outerm test_local_extrema te # 3. Compiler-dependent part -include ${general_compiler_options_dir}/settings.mk - ifeq (${FC},gfortran) # gfortran bug: FFLAGS := $(subst invalid${comma},,${FFLAGS}) diff --git a/Tests/read_snapshot.f b/Tests/read_snapshot.f index 6f7b89ab..a6b53ac4 100644 --- a/Tests/read_snapshot.f +++ b/Tests/read_snapshot.f @@ -46,19 +46,19 @@ contains !--------------------------------------------------------------------- - call shpgetinfo(hshp_extremum, s%number_vis_eddies, shapetype, minbound, & + call shpgetinfo(hshp_extremum, s%number_vis_extr, shapetype, minbound, & maxbound, dbffieldcount, dbfrecordcount) - allocate(s%list_vis(s%number_vis_eddies)) + allocate(s%list_vis(s%number_vis_extr)) call read_field_indices(hshp_extremum, hshp_outermost, hshp_max_speed) - do ishape = 0, s%number_vis_eddies - 1 + do ishape = 0, s%number_vis_extr - 1 call read_eddy(e, k, i, hshp_extremum, hshp_outermost, hshp_max_speed, & ishape) s%list_vis(i) = e end do - allocate(s%ind_extr(2, s%number_vis_eddies)) - forall (i = 1:s%number_vis_eddies) s%ind_extr(:, i) & + allocate(s%ind_extr(2, s%number_vis_extr)) + forall (i = 1:s%number_vis_extr) s%ind_extr(:, i) & = nint(convert_to_ind(s%list_vis(i)%coord_extr, corner, & step = [0.25, 0.25] * deg_to_rad)) @@ -67,14 +67,14 @@ contains ! Since we are not sure that there is no duplicate tuple in ! s%ind_extr, we must use a do construct and not a forall: - do i = 1, s%number_vis_eddies + do i = 1, s%number_vis_extr s%extr_map(s%ind_extr(1, i), s%ind_extr(2, i)) = i end do - call assert(count(s%extr_map /= 0) == s%number_vis_eddies, & + call assert(count(s%extr_map /= 0) == s%number_vis_extr, & "read_snapshot: one eddy per grid point") - s%number_eddies = s%number_vis_eddies + s%number_eddies = s%number_vis_extr end subroutine read_snapshot diff --git a/Tests/test_get_snapshot.f b/Tests/test_get_snapshot.f index c8ef2f0d..6f7a3801 100644 --- a/Tests/test_get_snapshot.f +++ b/Tests/test_get_snapshot.f @@ -92,7 +92,7 @@ program test_get_snapshot open(unit_number_eddies, file = "number_eddies_1.csv", status = "replace", & action = "write") write(unit_number_eddies, fmt = *) '"date index" ' & - // '"number of visible eddies" "number of interpolated eddies"' + // '"number of visible extrema" "number of interpolated eddies"' ! (title line) call dispatch_snapshot(s, hshp_extremum, hshp_outermost, hshp_max_speed, & @@ -110,11 +110,11 @@ program test_get_snapshot close(unit_number_eddies) print *, 'Created "number_eddies_1.csv".' - if (s%number_vis_eddies /= 0) then + if (s%number_vis_extr /= 0) then print *, "Average number of points per outermost contour: ", & - sum(s%list_vis%out_cont%n_points) / real(s%number_vis_eddies) + sum(s%list_vis%out_cont%n_points) / real(s%number_vis_extr) print *, "Average number of points per max-speed contour: ", & - sum(s%list_vis%speed_cont%n_points) / real(s%number_vis_eddies) + sum(s%list_vis%speed_cont%n_points) / real(s%number_vis_extr) else print *, "No visible eddy." end if diff --git a/Tests/test_read_snapshot.f b/Tests/test_read_snapshot.f index a5e86e85..52c27cd8 100644 --- a/Tests/test_read_snapshot.f +++ b/Tests/test_read_snapshot.f @@ -74,7 +74,7 @@ program test_read_snapshot print *, "s%ind_extr:" - do i = 1, s%number_vis_eddies + do i = 1, s%number_vis_extr print *, s%ind_extr(:, i) end do diff --git a/Tests/test_set_all_outerm.f b/Tests/test_set_all_outerm.f index 4d42e010..6368d4f9 100644 --- a/Tests/test_set_all_outerm.f +++ b/Tests/test_set_all_outerm.f @@ -121,7 +121,7 @@ program test_set_all_outerm action = "write") write(unit_isolated, fmt = *) '"date index" "eddy index"' ! title line - do i = 1, s%number_vis_eddies + do i = 1, s%number_vis_extr call shp_append_point_03(ishape, hshp_extremum, & s%list_vis(i)%coord_extr * rad_to_deg) call dbf_write_attribute_03(hshp_extremum, ishape, 0, & @@ -162,7 +162,7 @@ program test_set_all_outerm == huge(0)) write(unit_isolated, fmt = *) 1, i end do - print *, "s%number_vis_eddies = ", s%number_vis_eddies + print *, "s%number_vis_extr = ", s%number_vis_extr CALL shpclose(hshp_extremum) print *, 'Created shapefile "extremum_1".' @@ -171,6 +171,6 @@ program test_set_all_outerm close(unit_isolated) print *, 'Created "isolated_nodes_1.csv".' print *, "Average number of points per outermost contour: ", & - sum(s%list_vis%out_cont%n_points) / real(s%number_vis_eddies) + sum(s%list_vis%out_cont%n_points) / real(s%number_vis_extr) end program test_set_all_outerm diff --git a/derived_types.f b/derived_types.f index 91f54a58..98f4d691 100644 --- a/derived_types.f +++ b/derived_types.f @@ -38,10 +38,12 @@ module derived_types end type eddy type snapshot - type(eddy), allocatable:: list_vis(:) ! (number_vis_eddies) - ! visible eddies at a given date + type(eddy), allocatable:: list_vis(:) ! (number_vis_extr) + ! Visible "eddies" at a given date. These include "eddies" + ! without an outermost contour, that is only the extremum is + ! visible. - integer number_vis_eddies ! number of visible eddies + integer number_vis_extr ! number of visible extrema integer, allocatable:: extr_map(:, :) ! (1 - max_radius(1):nlon + max_radius(1), nlat) if the grid is @@ -49,7 +51,7 @@ module derived_types ! extremum SSH: identification number or this extremum. 0 at ! other points. - integer, allocatable:: ind_extr(:, :) ! (2, number_vis_eddies) + integer, allocatable:: ind_extr(:, :) ! (2, number_vis_extr) ! List of coordinates of ssh extrema in the global grid, in index ! space. The position in this list is the identifying number of ! the extremum. diff --git a/dispatch_snapshot.f b/dispatch_snapshot.f index 81188696..2917142d 100644 --- a/dispatch_snapshot.f +++ b/dispatch_snapshot.f @@ -40,15 +40,15 @@ contains if (m == 1 .or. k >= k_begin + max_delta) then ! Write snapshot: - do i = 1, s%number_vis_eddies + do i = 1, s%number_vis_extr call write_eddy(s%list_vis(i), k, i, hshp_extremum, hshp_outermost, & hshp_max_speed) if (s%list_vis(i)%delta_in == huge(0) .and. s%list_vis(i)%delta_out & == huge(0)) write(unit_isolated, fmt = *) k, i end do - write(unit_number_eddies, fmt = *) k, s%number_vis_eddies, & - s%number_eddies - s%number_vis_eddies + write(unit_number_eddies, fmt = *) k, s%number_vis_extr, & + s%number_eddies - s%number_vis_extr else call send_snapshot(s, tag = k, dest = m - 1) end if diff --git a/get_snapshot.f b/get_snapshot.f index 7e3e65cd..f2bb0a5b 100644 --- a/get_snapshot.f +++ b/get_snapshot.f @@ -95,7 +95,7 @@ contains ! Done with outermost contours, now let us take care of the ! max-speed contours. - do i = 1, s%number_vis_eddies + do i = 1, s%number_vis_extr if (s%list_vis(i)%valid) then ! Restrict the field to the outermost contour: @@ -129,7 +129,7 @@ contains end if end do - s%number_eddies = s%number_vis_eddies + s%number_eddies = s%number_vis_extr else call receive_snapshot(s, source = m + 1, tag = k) end if diff --git a/set_all_outerm.f b/set_all_outerm.f index e8068389..194728d6 100644 --- a/set_all_outerm.f +++ b/set_all_outerm.f @@ -44,19 +44,19 @@ contains integer nlon, nlat - real, allocatable:: innermost_level(:) ! (s%number_vis_eddies) + real, allocatable:: innermost_level(:) ! (s%number_vis_extr) ! SSH level of the innermost contour around each extremum, in ! m. By construction, innermost_level < extremum for a maximum, > ! extremum for a minimum. - logical, allocatable:: cyclone(:) ! (s%number_vis_eddies) + logical, allocatable:: cyclone(:) ! (s%number_vis_extr) integer i, l, copy integer n_cycl ! number of cyclones real, parameter:: min_area = 8e8 ! minimum area of an outermost contour, in m2 - integer, allocatable:: sorted_extr(:) ! (s%number_vis_eddies) + integer, allocatable:: sorted_extr(:) ! (s%number_vis_extr) ! Sorted identifying number of extrema: first, minima sorted in ! order of decreasing SSH, and second, maxima sorted in order of ! increasing SSH. @@ -95,10 +95,10 @@ contains = s%extr_map(2:max_radius(1), :) end if - s%number_vis_eddies = size(s%ind_extr, 2) - allocate(s%list_vis(s%number_vis_eddies), sorted_extr(s%number_vis_eddies)) + s%number_vis_extr = size(s%ind_extr, 2) + allocate(s%list_vis(s%number_vis_extr), sorted_extr(s%number_vis_extr)) - forall (i = 1:s%number_vis_eddies) + forall (i = 1:s%number_vis_extr) s%list_vis(i)%coord_extr = corner + (s%ind_extr(:, i) - 1) * step s%list_vis(i)%ssh_extr = ssh(s%ind_extr(1, i), s%ind_extr(2, i)) s%list_vis(i)%cyclone = cyclone(i) @@ -117,7 +117,7 @@ contains selection = selection(indexx(s%list_vis(selection)%ssh_extr)) sorted_extr(n_cycl + 1:) = selection - do l = 1, s%number_vis_eddies + do l = 1, s%number_vis_extr i = sorted_extr(l) ! Define the geographical window around each eddy extremum: diff --git a/successive_overlap.f b/successive_overlap.f index 93c122bb..d899ffff 100644 --- a/successive_overlap.f +++ b/successive_overlap.f @@ -35,7 +35,7 @@ contains !----------------------------------------------------------------------- - do i1 = 1, flow(j - 1)%number_vis_eddies + do i1 = 1, flow(j - 1)%number_vis_extr if (flow(j - 1)%list_vis(i1)%valid) then polyline_1 = merge(flow(j - 1)%list_vis(i1)%speed_cont%polyline, & flow(j - 1)%list_vis(i1)%out_cont%polyline, & -- GitLab