diff --git a/Common/derived_types.f90 b/Common/derived_types.f90
index 2d92f36200cef617092c67de4e125dfb0c5f8645..9200de656d42ce8664e2826bba65a8c13995d8ee 100644
--- a/Common/derived_types.f90
+++ b/Common/derived_types.f90
@@ -67,7 +67,7 @@ module derived_types
   real, parameter:: missing_ssh = 1e4 ! flag for undefined SSH
   real, parameter:: missing_speed = 1e4 ! flag for missing max speed
 
-  type shpc ! shapefile collection
+  type shpc_slice_handler ! shapefile collection
      TYPE(shpfileobject) extremum ! shapefile extremum
      TYPE(shpfileobject) outermost ! shapefile outermost_contour
      TYPE(shpfileobject) max_speed ! shapefile max_speed_contour
@@ -85,7 +85,7 @@ module derived_types
      integer, allocatable:: ishape_last(:) ! (d0:)
      ! shape index (0-based) in the collection of shapefiles of the last
      ! shape at a given date index
-  end type Shpc
+  end type Shpc_Slice_Handler
 
   private shpfileobject
 
diff --git a/Common/read_eddy.f90 b/Common/read_eddy.f90
index c633c59b909627dc7130fb9a743994d166f4c47f..668428cc1d224e27eec83bf4534bd4a7b3e78523 100644
--- a/Common/read_eddy.f90
+++ b/Common/read_eddy.f90
@@ -16,7 +16,7 @@ contains
     use shapelib, only: shpobject, shpdestroyobject
     use shapelib_03, only: shp_read_object_03, dbf_read_attribute_03
     
-    use derived_types, only: eddy, shpc, missing_speed
+    use derived_types, only: eddy, shpc_slice_handler, missing_speed
 
     type(eddy), intent(out):: e
     ! All components are defined. Components delta_in and delta_out
@@ -24,7 +24,7 @@ contains
     
     integer, intent(out):: d ! date
     integer, intent(out):: i ! eddy index
-    TYPE(shpc), intent(in):: hshp
+    TYPE(shpc_slice_handler), intent(in):: hshp
     integer, intent(in):: ishape ! 0-based
 
     ! Local:
diff --git a/Common/read_field_indices.f90 b/Common/read_field_indices.f90
index 55dc27b56aef2816339ff594db65693bb1ef40c2..6dbb6d2924531a04138db86603966a57377195ae 100644
--- a/Common/read_field_indices.f90
+++ b/Common/read_field_indices.f90
@@ -10,9 +10,9 @@ contains
     use shapelib, only: dbfgetfieldindex
     use shapelib_03, only: dbf_get_field_index_03
 
-    use derived_types, only: shpc
+    use derived_types, only: shpc_slice_handler
 
-    TYPE(shpc), intent(inout):: hshp
+    TYPE(shpc_slice_handler), intent(inout):: hshp
 
     !---------------------------------------------------------------------
 
diff --git a/Common/read_snapshot.f90 b/Common/read_snapshot.f90
index e747e41cc21f59ebe55e739682a52d8e4bbfbbfb..0ed139330c8a99c4934f829b35293b5b50cd1743 100644
--- a/Common/read_snapshot.f90
+++ b/Common/read_snapshot.f90
@@ -11,11 +11,11 @@ contains
     use jumble, only: assert
     use numer_rec_95, only: hunt
 
-    use derived_types, only: snapshot, eddy, shpc
+    use derived_types, only: snapshot, eddy, shpc_slice_handler
     use read_eddy_m, only: read_eddy
 
     type(snapshot), intent(out):: s ! completely defined
-    TYPE(shpc), intent(in):: hshpc(:)
+    TYPE(shpc_slice_handler), intent(in):: hshpc(:)
 
     integer, intent(in):: nlon, nlat
     ! size of ssh array in input NetCDF, assuming no repeated point if
diff --git a/Common/shpc_close.f90 b/Common/shpc_close.f90
index b29094e2a16664905ce96e7c1bff254deb671cea..7c43e2e8521e6efb213f95a86facc53c5ddb3eec 100644
--- a/Common/shpc_close.f90
+++ b/Common/shpc_close.f90
@@ -9,9 +9,9 @@ contains
     ! Libraries:
     use shapelib, only: shpclose
 
-    use derived_types, only: shpc
+    use derived_types, only: shpc_slice_handler
 
-    TYPE(shpc), intent(inout):: hshp
+    TYPE(shpc_slice_handler), intent(inout):: hshp
 
     !-------------------------------------------------------------
 
diff --git a/Common/shpc_create.f90 b/Common/shpc_create.f90
index 41af368eddc080a5e3af9801f46982fb44d03bc9..245c46f0b8329165d3a405fdd752f9e23f744299 100644
--- a/Common/shpc_create.f90
+++ b/Common/shpc_create.f90
@@ -11,9 +11,9 @@ contains
     use shapelib, only: shpt_point, shpt_polygon, ftdouble, ftinteger
     use shapelib_03, only: shp_create_03, dbf_add_field_03
 
-    use derived_types, only: shpc
+    use derived_types, only: shpc_slice_handler
 
-    TYPE(shpc), intent(out):: hshp
+    TYPE(shpc_slice_handler), intent(out):: hshp
     ! fields d0 and ishape_last are not defined in this procedure
 
     character(len = *), intent(in):: shpc_dir
diff --git a/Common/shpc_open.f90 b/Common/shpc_open.f90
index 01da636c27e857bd6e7291aad11d8bb74330c8f1..344d072e349b05689f86fc283c7601d718012189 100644
--- a/Common/shpc_open.f90
+++ b/Common/shpc_open.f90
@@ -10,10 +10,10 @@ contains
     USE jumble, only: new_unit
     use shapelib_03, only: shp_open_03
 
-    use derived_types, only: shpc
+    use derived_types, only: shpc_slice_handler
     use read_field_indices_m, only: read_field_indices
 
-    TYPE(shpc), intent(out):: hshp
+    TYPE(shpc_slice_handler), intent(out):: hshp
     character(len = *), intent(in):: shpc_dir
     character(len = *), intent(in):: pszaccess ! should be "rb" or "rb+"
 
diff --git a/Common/write_eddy.f90 b/Common/write_eddy.f90
index 86af0712baac6a06dc931657c4d642eb4d8b34ca..39f6a0dc11ee847fb502cf2dc153bd6b4028db04 100644
--- a/Common/write_eddy.f90
+++ b/Common/write_eddy.f90
@@ -14,10 +14,10 @@ contains
     use shapelib_03, only: shp_append_point_03, dbf_write_attribute_03, &
          shp_append_object_03, shp_append_null_03
 
-    use derived_types, only: eddy, missing_speed, shpc
+    use derived_types, only: eddy, missing_speed, shpc_slice_handler
 
     type(eddy), intent(in):: e
-    TYPE(shpc), intent(in):: hshpc
+    TYPE(shpc_slice_handler), intent(in):: hshpc
     integer, intent(in):: date
     integer, intent(in):: i ! eddy index
 
diff --git a/Inst_eddies/Tests/test_get_1_outerm.f90 b/Inst_eddies/Tests/test_get_1_outerm.f90
index 201a35410b1c0914ff1eb599d8aa06b58b610cb9..bba5dba2a0f4bbb0d1abb74b37c27971624f9ec9 100644
--- a/Inst_eddies/Tests/test_get_1_outerm.f90
+++ b/Inst_eddies/Tests/test_get_1_outerm.f90
@@ -9,7 +9,8 @@ program test_get_1_outerm
        nf95_gw_var
   use jumble, only: deg_to_rad
 
-  use derived_types, only: eddy, shpc, null_ssh_contour, missing_speed
+  use derived_types, only: eddy, shpc_slice_handler, null_ssh_contour, &
+       missing_speed
   use get_1_outerm_m, only: get_1_outerm
   use shpc_close_m, only: shpc_close
   use shpc_create_m, only: shpc_create
@@ -30,7 +31,7 @@ program test_get_1_outerm
   ! level of innermost contour, for each extremum
   
   logical:: cyclone = .true.
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
   type(eddy) e
 
   real, allocatable:: outside_points(:, :) ! (2, :) longitude and
diff --git a/Inst_eddies/Tests/test_nearby_extr.f90 b/Inst_eddies/Tests/test_nearby_extr.f90
index ab3754b6c1d03e1ac7ee5f06f185aaaba0d3aa24..ad155d3b3e1d402204179de4006211f86309d4ee 100644
--- a/Inst_eddies/Tests/test_nearby_extr.f90
+++ b/Inst_eddies/Tests/test_nearby_extr.f90
@@ -5,7 +5,7 @@ program test_nearby_extr
   use jumble, only: deg_to_rad, rad_to_deg
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: snapshot, shpc
+  use derived_types, only: snapshot, shpc_slice_handler
   use nearby_extr_m, only: nearby_extr
   use read_snapshot_m, only: read_snapshot
   use shpc_close_m, only: shpc_close
@@ -15,7 +15,7 @@ program test_nearby_extr
 
   character(len = :), allocatable:: shpc_dir
   type(snapshot) s
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
   integer unit, l
 
   real corner_deg(2)
diff --git a/Inst_eddies/Tests/test_set_all_outerm.f90 b/Inst_eddies/Tests/test_set_all_outerm.f90
index 78dbc9f95da1d412878b3814e28a455c7713a801..d2319d02c7ecb859106922626de527728e35e23d 100644
--- a/Inst_eddies/Tests/test_set_all_outerm.f90
+++ b/Inst_eddies/Tests/test_set_all_outerm.f90
@@ -10,7 +10,8 @@ program test_set_all_outerm
   use jumble, only: pi, assert, deg_to_rad, twopi
 
   use config_m, only: config, max_radius_deg, min_radius
-  use derived_types, only: snapshot, shpc, null_ssh_contour, missing_speed
+  use derived_types, only: snapshot, shpc_slice_handler, null_ssh_contour, &
+       missing_speed
   use get_var_m, only: get_var
   use set_all_outerm_m, only: set_all_outerm
   use shpc_close_m, only: shpc_close
@@ -35,7 +36,7 @@ program test_set_all_outerm
 
   real step_deg(2), step(2) ! longitude and latitude steps, in degrees and rad
   logical periodic ! grid is periodic in longitude
-  TYPE(shpc) hshp_cyclo, hshp_anti
+  TYPE(shpc_slice_handler) hshp_cyclo, hshp_anti
 
   !--------------------------------------------------------------
 
diff --git a/Inst_eddies/Tests/test_set_max_speed.f90 b/Inst_eddies/Tests/test_set_max_speed.f90
index 78624a92ca36d42f5acbdd5a6468a34f1b0d216d..9a214d49ac01d201a42baeb4d7e5fa03ec4ab49c 100644
--- a/Inst_eddies/Tests/test_set_max_speed.f90
+++ b/Inst_eddies/Tests/test_set_max_speed.f90
@@ -10,7 +10,7 @@ program test_set_max_speed
   use netcdf95, only: nf95_open, nf95_close, nf95_inq_varid, nf95_get_var, &
        find_coord, nf95_inquire_dimension
 
-  use derived_types, only: eddy, shpc
+  use derived_types, only: eddy, shpc_slice_handler
   use get_var_m, only: get_var
   use read_eddy_m, only: read_eddy
   use set_max_speed_m, only: set_max_speed
@@ -27,7 +27,7 @@ program test_set_max_speed
   real, allocatable:: u(:, :), v(:, :) ! (nlon, nlat) wind, in m s-1
   type(eddy) e
   real corner(2), step(2) ! in rad
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
   character(len = :), allocatable:: shpc_dir
 
   real, allocatable:: outside_points(:, :) ! (2, :) longitude and
diff --git a/Inst_eddies/Tests/test_write_eddy.f90 b/Inst_eddies/Tests/test_write_eddy.f90
index 64130aba87c62816066d4556b6640cd041ccaaf7..944eed64d837824dc3c508ddd5636222a0795e52 100644
--- a/Inst_eddies/Tests/test_write_eddy.f90
+++ b/Inst_eddies/Tests/test_write_eddy.f90
@@ -7,14 +7,14 @@ program test_write_eddy
   use shapelib_03, only: shp_append_point_03, dbf_write_attribute_03, &
        shp_append_null_03
 
-  use derived_types, only: shpc
+  use derived_types, only: shpc_slice_handler
   use shpc_close_m, only: shpc_close
   use shpc_create_m, only: shpc_create
   use shpc_open_m, only: shpc_open
 
   implicit none
 
-  TYPE(shpc) hshpc
+  TYPE(shpc_slice_handler) hshpc
   integer i, ishape
   integer:: n_eddies = 50000
   logical exist
diff --git a/Inst_eddies/inst_eddies.f90 b/Inst_eddies/inst_eddies.f90
index e54dd75f2759e35870577b02705440534c62630d..88d61dada2378a40361680fe5efdc8fcdec80f0c 100644
--- a/Inst_eddies/inst_eddies.f90
+++ b/Inst_eddies/inst_eddies.f90
@@ -11,7 +11,8 @@ program inst_eddies
   use jumble, only: assert, deg_to_rad, twopi, pi, new_unit
 
   use config_m, only: config, max_radius_deg, min_radius
-  use derived_types, only: snapshot, null_ssh_contour, missing_speed, shpc
+  use derived_types, only: snapshot, null_ssh_contour, missing_speed, &
+       shpc_slice_handler
   use get_var_m, only: get_var
   use nearby_extr_m, only: nearby_extr
   use set_all_outerm_m, only: set_all_outerm
@@ -25,7 +26,7 @@ program inst_eddies
   implicit none
 
   type(snapshot) s
-  TYPE(shpc) hshpc_cyclo, hshpc_anti
+  TYPE(shpc_slice_handler) hshpc_cyclo, hshpc_anti
   integer i, date, n_cyclo, n_anti
 
   integer ncid, dimid, varid, copy, unit
diff --git a/Overlap/Tests/test_get_dispatch_snap.f90 b/Overlap/Tests/test_get_dispatch_snap.f90
index 38377a9cb6f5bfbaf423a7e3f3005f124e5a4b1a..fbb12074e4275d9080940acee8f57d129f65b70d 100644
--- a/Overlap/Tests/test_get_dispatch_snap.f90
+++ b/Overlap/Tests/test_get_dispatch_snap.f90
@@ -10,7 +10,7 @@ program test_get_dispatch_snap
        MPI_Comm_size, mpi_abort
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: snapshot, shpc
+  use derived_types, only: snapshot, shpc_slice_handler
   use dispatch_snapshot_m, only: dispatch_snapshot
   use get_snapshot_m, only: get_snapshot
   use send_snapshot_m, only: send_snapshot
@@ -22,7 +22,7 @@ program test_get_dispatch_snap
 
   character(len = :), allocatable:: shpc_dir
   type(snapshot) s
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
   integer k_begin, copy, rank, n_proc, k_end, n_dates
   integer unit_isolated
 
diff --git a/Overlap/Tests/test_overlap.f90 b/Overlap/Tests/test_overlap.f90
index 35d919a18082edce753718273f601d2052eb52a0..d20a3baebb14a88998db380b8cb833c056a5d14e 100644
--- a/Overlap/Tests/test_overlap.f90
+++ b/Overlap/Tests/test_overlap.f90
@@ -7,7 +7,7 @@ program test_overlap
   use jumble, only: deg_to_rad, assert
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: snapshot, shpc
+  use derived_types, only: snapshot, shpc_slice_handler
   use overlap_m, only: overlap
   use read_snapshot_m, only: read_snapshot
   use shpc_close_m, only: shpc_close
@@ -20,7 +20,7 @@ program test_overlap
   integer:: k_test_1 = 0, k_test_2 = 1
   integer unit, i, copy, n_dates
   type(snapshot), allocatable:: flow(:) ! (max_delta + 1)
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
 
   real:: corner_deg(2) = [huge(0.), huge(0.)], corner(2)
   ! longitude and latitude of the corner of the whole grid, in degrees
diff --git a/Overlap/Tests/test_read_eddy.f90 b/Overlap/Tests/test_read_eddy.f90
index eae08f0d2b47ccb9d510ecb484a711654afd2db1..838ca5bd9b958f02b2334ea10dc0d3d3e31007ba 100644
--- a/Overlap/Tests/test_read_eddy.f90
+++ b/Overlap/Tests/test_read_eddy.f90
@@ -4,7 +4,7 @@ program test_read_eddy
   use jumble, only: get_command_arg_dyn, read_column
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: eddy, shpc
+  use derived_types, only: eddy, shpc_slice_handler
   use read_eddy_m, only: read_eddy
   use shpc_close_m, only: shpc_close
   use shpc_create_m, only: shpc_create
@@ -16,7 +16,7 @@ program test_read_eddy
   type(eddy) e
   integer k, eddy_i
   integer:: ishape = 0
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
   character(len = :), allocatable:: shpc_dir
   namelist /main_nml/ ishape
 
diff --git a/Overlap/Tests/test_read_snapshot.f90 b/Overlap/Tests/test_read_snapshot.f90
index f540c8e52802c82fc1f297553ab02c4da0f7d77f..82088b2476ea0977cb261b457c1965fe9980c243 100644
--- a/Overlap/Tests/test_read_snapshot.f90
+++ b/Overlap/Tests/test_read_snapshot.f90
@@ -7,7 +7,7 @@ program test_read_snapshot
        read_column
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: snapshot, shpc
+  use derived_types, only: snapshot, shpc_slice_handler
   use read_snapshot_m, only: read_snapshot
   use shpc_close_m, only: shpc_close
   use shpc_open_m, only: shpc_open
@@ -17,7 +17,7 @@ program test_read_snapshot
 
   character(len = :), allocatable:: shpc_dir
   type(snapshot) s
-  TYPE(shpc), allocatable:: hshp(:) ! (n_shpc)
+  TYPE(shpc_slice_handler), allocatable:: hshp(:) ! (n_shpc)
   integer copy, unit, k, i
   integer n_shpc ! number of input SHPC directories
 
diff --git a/Overlap/Tests/test_send_recv.f90 b/Overlap/Tests/test_send_recv.f90
index 75397cbd5693004d685a46cad4184072298b3818..b88cd1eddf9161a12fc71a81322db5662b6c923f 100644
--- a/Overlap/Tests/test_send_recv.f90
+++ b/Overlap/Tests/test_send_recv.f90
@@ -11,7 +11,7 @@ program test_send_recv
   use jumble, only: deg_to_rad, assert
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: snapshot, shpc
+  use derived_types, only: snapshot, shpc_slice_handler
   use read_snapshot_m, only: read_snapshot
   use recv_snapshot_m, only: recv_snapshot
   use send_snapshot_m, only: send_snapshot
@@ -41,7 +41,7 @@ program test_send_recv
   namelist /main_nml/ dist_lim
   namelist /grid_nml/ corner_deg, step_deg, nlon, nlat
   logical periodic ! grid is periodic in longitude
-  TYPE(shpc) hshp
+  TYPE(shpc_slice_handler) hshp
 
   !---------------------------------------------------------------------
 
diff --git a/Overlap/Tests/write_snapshot.f90 b/Overlap/Tests/write_snapshot.f90
index 9a7c1447670f5dab8dd8bfdf66e5f8290501a3c9..3141dfffab58afbbaf47a8842368c91dc92d339f 100644
--- a/Overlap/Tests/write_snapshot.f90
+++ b/Overlap/Tests/write_snapshot.f90
@@ -9,7 +9,7 @@ contains
     ! Libraries:
     use jumble, only: arth
 
-    use derived_types, only: snapshot, shpc
+    use derived_types, only: snapshot, shpc_slice_handler
     use shpc_close_m, only: shpc_close
     use shpc_create_m, only: shpc_create
     use write_eddy_m, only: write_eddy
@@ -30,7 +30,7 @@ contains
     integer, intent(in):: copy, d
 
     ! Local:
-    TYPE(shpc) hshp
+    TYPE(shpc_slice_handler) hshp
     integer i
 
     !-----------------------------------------------------------------
diff --git a/Overlap/eddy_graph.f90 b/Overlap/eddy_graph.f90
index 76e2222c8084f976232c70400fdb8403326aefe8..3f87fd42da58860586aa613ca4df7f18802a7b03 100644
--- a/Overlap/eddy_graph.f90
+++ b/Overlap/eddy_graph.f90
@@ -10,7 +10,7 @@ program eddy_graph
        MPI_Comm_size
   use shapelib_03, only: dbf_read_attribute_03
 
-  use derived_types, only: snapshot, shpc
+  use derived_types, only: snapshot, shpc_slice_handler
   use dispatch_snapshot_m, only: dispatch_snapshot
   use get_snapshot_m, only: get_snapshot
   use overlap_m, only: overlap
@@ -52,7 +52,7 @@ program eddy_graph
   integer unit_isolated, unit
   integer n_shpc ! number of input SHPC directories
   integer e_overestim ! over-estimation of the number of eddies at each date
-  TYPE(shpc), allocatable:: hshpc(:) ! (n_shpc)
+  TYPE(shpc_slice_handler), allocatable:: hshpc(:) ! (n_shpc)
   type(snapshot), allocatable:: flow(:) ! (max_delta + 1)
   character(len = 30) file
 
diff --git a/Overlap/get_snapshot.f90 b/Overlap/get_snapshot.f90
index 68c37206136e596cbf77d61fc3c0f42603cdec00..504c8a656d6eba466fd2a5691e059302df8817bc 100644
--- a/Overlap/get_snapshot.f90
+++ b/Overlap/get_snapshot.f90
@@ -7,7 +7,7 @@ contains
   subroutine get_snapshot(s, nlon, nlat, corner, step, copy, hshp, k, k_end, &
        rank, n_proc, max_delta)
 
-    use derived_types, only: snapshot, shpc
+    use derived_types, only: snapshot, shpc_slice_handler
     use read_snapshot_m, only: read_snapshot
     use recv_snapshot_m, only: recv_snapshot
 
@@ -19,7 +19,7 @@ contains
 
     real, intent(in):: step(:) ! (2) longitude and latitude steps, in rad
     integer, intent(in):: copy
-    TYPE(shpc), intent(in):: hshp(:)
+    TYPE(shpc_slice_handler), intent(in):: hshp(:)
     integer, intent(in):: k ! date index
     integer, intent(in):: k_end ! last date index analyzed by this MPI process
     integer, intent(in):: rank ! of MPI process