diff --git a/Inst_eddies/Tests/examine_eddy.f90 b/Inst_eddies/Tests/examine_eddy.f90 index ae5d1949ab1395d9fc5ec2e672d2d3597f6c6c0e..24163c6a75618099f8e5960b3e22a2e8bccd47f8 100644 --- a/Inst_eddies/Tests/examine_eddy.f90 +++ b/Inst_eddies/Tests/examine_eddy.f90 @@ -190,7 +190,7 @@ program examine_eddy call set_contours(e%out_cont, e%speed_cont, e%max_speed, cyclone, e%extr, & e%innermost_level, step, ssh(llc(1):urc(1), llc(2):urc(2)), & u(llc(1):urc(1), llc(2):urc(2)), v(llc(1):urc(1), llc(2):urc(2)), & - corner_window, outside_points) + (corner_window - corner) / step + 1., outside_points) call close_cont_list call shpc_create(hshpc, shpc_dir = "SHPC", cyclone = cyclone, slice = 0, & grid_lon_lat = .true.) diff --git a/Inst_eddies/inst_eddies.f90 b/Inst_eddies/inst_eddies.f90 index b6c4cb93c0b7d70f5270c3ebca83e2c31237d825..04e17cfa152fd5697c2e8ef36b8fcaeda550946c 100644 --- a/Inst_eddies/inst_eddies.f90 +++ b/Inst_eddies/inst_eddies.f90 @@ -172,7 +172,7 @@ program inst_eddies s%list(i)%max_speed, s%list(i)%cyclone, s%list(i)%extr, & s%list(i)%innermost_level, step, ssh(llc(1):urc(1), llc(2):urc(2)), & u(llc(1):urc(1), llc(2):urc(2)), v(llc(1):urc(1), llc(2):urc(2)), & - corner_window, outside_points) + (corner_window - corner) / step + 1., outside_points) end do call cpu_time(t1) diff --git a/Inst_eddies/set_contours.f90 b/Inst_eddies/set_contours.f90 index bab8c70407e91ce60da5e87b0eac0840b60b938f..d20ebc3f8c5f5880872d40f663cab0a1d2ef4384 100644 --- a/Inst_eddies/set_contours.f90 +++ b/Inst_eddies/set_contours.f90 @@ -5,7 +5,7 @@ module set_contours_m contains subroutine set_contours(out_cont, speed_cont, max_speed, cyclone, extr, & - innermost_level, step, ssh, u, v, corner, outside_points) + innermost_level, step, ssh, u, v, corner_proj, outside_points) ! This procedure sets contours in an eddy. @@ -15,7 +15,6 @@ contains use config_m, only: min_amp use derived_types, only: extremum, ssh_contour use get_1_outerm_m, only: get_1_outerm - use input_ssh_m, only: corner_whole => corner use set_max_speed_m, only: set_max_speed type(ssh_contour), intent(out):: out_cont ! outermost contour @@ -42,8 +41,8 @@ contains real, intent(in), dimension(:, :):: ssh, u, v ! sea-surface height, in m, and wind, in m s-1 - real, intent(in):: corner(:) ! (2) - ! Longitude and latitude of the corner of the grid, in rad, + real, intent(in):: corner_proj(:) ! (2) + ! Coordinates in projection space of the corner of the grid, ! corresponding to ssh(1, 1). A priori, this is not the corner of ! the grid of the NetCDF file. @@ -96,7 +95,7 @@ contains call get_1_outerm(out_cont, cont_list, cont_list_proj, n_cont, cyclone, & real(extr%coord_proj), innermost_level_2, outside_points, ssh, & - (corner - corner_whole) / step + 1., step) + corner_proj, step) ! Done with outermost contour, now let us take care of the ! max-speed contour. @@ -105,10 +104,9 @@ contains ! {begin} Restrict the field to the outermost contour: corner_window = floor(minval(cont_list_proj(n_cont)%points, dim = 2)) - llc = nint((corner_whole - corner) / step) & - + corner_window - urc = nint((corner_whole - corner) / step) & - + ceiling(maxval(cont_list_proj(n_cont)%points, dim = 2)) + llc = corner_window - nint(corner_proj) + 1 + urc = ceiling(maxval(cont_list_proj(n_cont)%points, dim = 2)) & + - nint(corner_proj) + 1 ! Should have no effect except because of roundup error: urc(2) = min(urc(2), size(ssh, 2))