diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..11492d96707500f824af7d97b3b017f9bc9ced7b --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,98 @@ +cmake_minimum_required(VERSION 3.14) +project(Detection_eddies Fortran) + +find_path(jumble_INCLUDE_DIR jumble.mod) +find_library(jumble_LIBRARY jumble) + +find_path(nr_util_INCLUDE_DIR nr_util.mod) +find_library(nr_util_LIBRARY nr_util) + +find_path(netcdf95_INCLUDE_DIR netcdf95.mod) +find_library(netcdf95_LIBRARY netcdf95) + +find_path(netcdff_INCLUDE_DIR netcdf.mod) +find_library(netcdff_LIBRARY netcdff) + +find_path(contour_531_INCLUDE_DIR contour_531.mod) +find_library(contour_531_LIBRARY contour_531) + +find_path(fortrangis_INCLUDE_DIR shapelib.mod) +find_library(fortrangis_LIBRARY fortrangis) + +find_library(fortranc_LIBRARY fortranc) +find_library(shapelib_LIBRARY shp) + +find_path(shapelib_03_INCLUDE_DIR shapelib_03.mod) +find_library(shapelib_03_LIBRARY shapelib_03) + +find_path(GPC_F_INCLUDE_DIR gpc_f.mod) +find_library(GPC_F_LIBRARY gpc_f) + +find_library(GPC_LIBRARY GPC) + +find_path(geometry_INCLUDE_DIR geometry.mod) +find_library(geometry_LIBRARY geometry) + +find_path(numer_rec_95_INCLUDE_DIR numer_rec_95.mod) +find_library(numer_rec_95_LIBRARY numer_rec_95) + +find_package(NetCDF REQUIRED) + +add_executable(extraction_eddies extraction_eddies.f90 write_eddy.f90 + local_extrema.f90 set_max_speed.f90 get_1_outerm.f90 max_speed_contour_ssh.f90 + good_contour.f90 spher_polyline_area.f90 mean_speed.f90 inside_4.f90 + set_all_outerm.f90 derived_types.f90 init_shapefiles.f90 nearby_extr.f90 + get_var.f90) + +target_include_directories(extraction_eddies PRIVATE + ${contour_531_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR} + ${netcdff_INCLUDE_DIR}) + +target_link_libraries(extraction_eddies ${contour_531_LIBRARY} + ${netcdf95_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY} + ${numer_rec_95_LIBRARY} ${jumble_LIBRARY} ${nr_util_LIBRARY} + ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} ${fortranc_LIBRARY} + ${shapelib_LIBRARY} ${geometry_LIBRARY}) + +# Tests + +add_executable(test_local_extrema local_extrema.f90) + +add_executable(test_get_1_outerm good_contour.f90 derived_types.f90 + get_1_outerm.f90 spher_polyline_area.f90) + +add_executable(test_set_max_speed derived_types.f90 set_max_speed.f90 + good_contour.f90 max_speed_contour_ssh.f90 mean_speed.f90 + spher_polyline_area.f90 inside_4.f90) + +add_executable(test_set_all_outerm derived_types.f90 set_all_outerm.f90 + local_extrema.f90 get_1_outerm.f90 good_contour.f90 spher_polyline_area.f90 + nearby_extr.f90 get_var.f90) + +add_executable(test_weight weight.f90 derived_types.f90) + +add_executable(test_spher_polygon_area spher_polygon_area.f90 + spher_polyline_area.f90) + +add_executable(test_read_eddy derived_types.f90 init_shapefiles.f90 +read_eddy.f90 write_eddy.f90 read_field_indices.f90) + +add_executable(test_read_snapshot derived_types.f90 init_shapefiles.f90 + read_snapshot.f90 write_eddy.f90 read_eddy.f90 read_field_indices.f90) + +add_executable(test_successive_overlap derived_types.f90 + successive_overlap.f90 read_snapshot.f90 spher_polygon_area.f90 + spher_polyline_area.f90 weight.f90 read_eddy.f90 read_field_indices.f90) + +add_executable(test_nearby_extr nearby_extr.f90 derived_types.f90) + +add_executable(test_max_speed_contour_ssh derived_types.f90 + max_speed_contour_ssh.f90 get_var.f90) + +add_executable(test_good_contour good_contour.f90) +add_executable(test_inside_4 inside_4.f90) +add_executable(test_mean_speed mean_speed.f90) +add_executable(test_spher_polyline_area spher_polyline_area.f90) + +include(Tests/CMakeLists.txt) +include(ConfigureCompilerFlags) diff --git a/GNUmakefile b/GNUmakefile index 7cdeaa271b7e21281d1cbe813970f449a81d88c3..8aa6333694effc1b0282a5c3f9d7193e43bc23c9 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -2,31 +2,31 @@ # 1. Source files and libraries -src_test_local_extrema = test_local_extrema.f local_extrema.f write_extr_map.f +src_test_local_extrema = test_local_extrema.f90 local_extrema.f90 write_extr_map.f90 -src_test_get_1_outerm = good_contour.f test_get_1_outerm.f derived_types.f get_1_outerm.f spher_polyline_area.f +src_test_get_1_outerm = good_contour.f90 test_get_1_outerm.f90 derived_types.f90 get_1_outerm.f90 spher_polyline_area.f90 -src_test_set_max_speed = test_set_max_speed.f derived_types.f set_max_speed.f good_contour.f max_speed_contour_ssh.f mean_speed.f spher_polyline_area.f inside_4.f +src_test_set_max_speed = test_set_max_speed.f90 derived_types.f90 set_max_speed.f90 good_contour.f90 max_speed_contour_ssh.f90 mean_speed.f90 spher_polyline_area.f90 inside_4.f90 -src_extraction_eddies = extraction_eddies.f write_eddy.f local_extrema.f set_max_speed.f get_1_outerm.f max_speed_contour_ssh.f good_contour.f spher_polyline_area.f mean_speed.f inside_4.f set_all_outerm.f derived_types.f init_shapefiles.f nearby_extr.f get_var.f +src_extraction_eddies = extraction_eddies.f90 write_eddy.f90 local_extrema.f90 set_max_speed.f90 get_1_outerm.f90 max_speed_contour_ssh.f90 good_contour.f90 spher_polyline_area.f90 mean_speed.f90 inside_4.f90 set_all_outerm.f90 derived_types.f90 init_shapefiles.f90 nearby_extr.f90 get_var.f90 -src_test_set_all_outerm = test_set_all_outerm.f derived_types.f set_all_outerm.f local_extrema.f get_1_outerm.f good_contour.f spher_polyline_area.f nearby_extr.f get_var.f +src_test_set_all_outerm = test_set_all_outerm.f90 derived_types.f90 set_all_outerm.f90 local_extrema.f90 get_1_outerm.f90 good_contour.f90 spher_polyline_area.f90 nearby_extr.f90 get_var.f90 -src_test_weight = test_weight.f weight.f derived_types.f +src_test_weight = test_weight.f90 weight.f90 derived_types.f90 -src_test_spher_polygon_area = spher_polygon_area.f test_spher_polygon_area.f spher_polyline_area.f +src_test_spher_polygon_area = spher_polygon_area.f90 test_spher_polygon_area.f90 spher_polyline_area.f90 -src_test_read_eddy = test_read_eddy.f derived_types.f init_shapefiles.f read_eddy.f write_eddy.f read_field_indices.f +src_test_read_eddy = test_read_eddy.f90 derived_types.f90 init_shapefiles.f90 read_eddy.f90 write_eddy.f90 read_field_indices.f90 -src_test_read_snapshot = test_read_snapshot.f derived_types.f init_shapefiles.f read_snapshot.f write_eddy.f read_eddy.f read_field_indices.f write_extr_map.f +src_test_read_snapshot = test_read_snapshot.f90 derived_types.f90 init_shapefiles.f90 read_snapshot.f90 write_eddy.f90 read_eddy.f90 read_field_indices.f90 write_extr_map.f90 -src_test_successive_overlap = test_successive_overlap.f derived_types.f successive_overlap.f read_snapshot.f spher_polygon_area.f spher_polyline_area.f weight.f read_eddy.f read_field_indices.f +src_test_successive_overlap = test_successive_overlap.f90 derived_types.f90 successive_overlap.f90 read_snapshot.f90 spher_polygon_area.f90 spher_polyline_area.f90 weight.f90 read_eddy.f90 read_field_indices.f90 -src_test_nearby_extr = test_nearby_extr.f nearby_extr.f derived_types.f +src_test_nearby_extr = test_nearby_extr.f90 nearby_extr.f90 derived_types.f90 -src_test_max_speed_contour_ssh = test_max_speed_contour_ssh.f max_speed_contour_ssh.f get_var.f +src_test_max_speed_contour_ssh = test_max_speed_contour_ssh.f90 max_speed_contour_ssh.f90 get_var.f90 -sources := $(sort ${src_test_local_extrema} ${src_test_get_1_outerm} ${src_test_set_max_speed} ${src_extraction_eddies} ${src_test_set_all_outerm} ${src_test_weight} ${src_test_spher_polygon_area} ${src_test_read_eddy} ${src_test_read_snapshot} ${src_test_successive_overlap} ${src_test_nearby_extr} ${src_test_max_speed_contour_ssh}) test_good_contour.f test_inside_4.f test_mean_speed.f test_spher_polyline_area.f +sources := $(sort ${src_test_local_extrema} ${src_test_get_1_outerm} ${src_test_set_max_speed} ${src_extraction_eddies} ${src_test_set_all_outerm} ${src_test_weight} ${src_test_spher_polygon_area} ${src_test_read_eddy} ${src_test_read_snapshot} ${src_test_successive_overlap} ${src_test_nearby_extr} ${src_test_max_speed_contour_ssh}) test_good_contour.f90 test_inside_4.f90 test_mean_speed.f90 test_spher_polyline_area.f90 lib_list = GPC_F contour_531 numer_rec_95 GPC shapelib_03 netcdf95 geometry jumble netcdff fortrangis shp fortranc nr_util @@ -36,20 +36,20 @@ VPATH += ${makefile_dir}/Tests # 2. Objects and executable files -obj_test_local_extrema := $(src_test_local_extrema:.f=.o) -obj_test_get_1_outerm := $(src_test_get_1_outerm:.f=.o) -obj_test_set_max_speed := $(src_test_set_max_speed:.f=.o) -obj_extraction_eddies := $(src_extraction_eddies:.f=.o) -obj_test_set_all_outerm := $(src_test_set_all_outerm:.f=.o) -obj_test_weight := $(src_test_weight:.f=.o) -obj_test_spher_polygon_area := $(src_test_spher_polygon_area:.f=.o) -obj_test_read_eddy := $(src_test_read_eddy:.f=.o) -obj_test_read_snapshot := $(src_test_read_snapshot:.f=.o) -obj_test_successive_overlap := $(src_test_successive_overlap:.f=.o) -obj_test_nearby_extr := $(src_test_nearby_extr:.f=.o) -obj_test_max_speed_contour_ssh := $(src_test_max_speed_contour_ssh:.f=.o) - -objects := $(sources:.f=.o) +obj_test_local_extrema := $(src_test_local_extrema:.f90=.o) +obj_test_get_1_outerm := $(src_test_get_1_outerm:.f90=.o) +obj_test_set_max_speed := $(src_test_set_max_speed:.f90=.o) +obj_extraction_eddies := $(src_extraction_eddies:.f90=.o) +obj_test_set_all_outerm := $(src_test_set_all_outerm:.f90=.o) +obj_test_weight := $(src_test_weight:.f90=.o) +obj_test_spher_polygon_area := $(src_test_spher_polygon_area:.f90=.o) +obj_test_read_eddy := $(src_test_read_eddy:.f90=.o) +obj_test_read_snapshot := $(src_test_read_snapshot:.f90=.o) +obj_test_successive_overlap := $(src_test_successive_overlap:.f90=.o) +obj_test_nearby_extr := $(src_test_nearby_extr:.f90=.o) +obj_test_max_speed_contour_ssh := $(src_test_max_speed_contour_ssh:.f90=.o) + +objects := $(sources:.f90=.o) execut = test_good_contour test_inside_4 test_get_1_outerm test_local_extrema test_max_speed_contour_ssh test_mean_speed test_set_max_speed extraction_eddies test_set_all_outerm test_weight test_spher_polyline_area test_spher_polygon_area test_read_eddy test_read_snapshot test_successive_overlap test_nearby_extr diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..206bbf7f581c23ccab1b69169dcdf8ee4c482c62 --- /dev/null +++ b/Tests/CMakeLists.txt @@ -0,0 +1,194 @@ +# test_max_speed_contour + +target_sources(test_max_speed_contour_ssh PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_max_speed_contour_ssh.f90) + +target_include_directories(test_max_speed_contour_ssh PRIVATE + ${netcdf95_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} ${contour_531_INCLUDE_DIR} + ${jumble_INCLUDE_DIR} ${nr_util_INCLUDE_DIR}) + +target_link_libraries(test_max_speed_contour_ssh ${netcdf95_LIBRARY} + ${netcdff_LIBRARY} ${contour_531_LIBRARY} ${jumble_LIBRARY} + ${nr_util_LIBRARY} ${NetCDF_LIBRARY}) + +# test_nearby_extr + +target_sources(test_nearby_extr PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_nearby_extr.f90) + +target_include_directories(test_nearby_extr PRIVATE + ${contour_531_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} + ${fortrangis_INCLUDE_DIR} ${netcdf95_INCLUDE_DIR} + ${shapelib_INCLUDE_DIR} ${shapelib_03_INCLUDE_DIR}) + +target_link_libraries(test_nearby_extr ${contour_531_LIBRARY} + ${fortrangis_LIBRARY} ${fortranc_LIBRARY} ${shapelib_LIBRARY} + ${netcdf95_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY} + ${shapelib_03_LIBRARY}) + +# test_successive_overlap + +target_sources(test_successive_overlap PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_successive_overlap.f90) + +target_include_directories(test_successive_overlap PRIVATE + ${contour_531_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR} + ${GPC_F_INCLUDE_DIR} ${nr_util_INCLUDE_DIR} ${geometry_INCLUDE_DIR} + ${jumble_INCLUDE_DIR}) + +target_link_libraries(test_successive_overlap ${contour_531_LIBRARY} + ${fortrangis_LIBRARY} ${fortranc_LIBRARY} ${shapelib_LIBRARY} + ${GPC_F_LIBRARY} ${GPC_LIBRARY} ${shapelib_03_LIBRARY} + ${jumble_LIBRARY} ${nr_util_LIBRARY} ${geometry_LIBRARY}) + +# test_read_snapshot + +target_sources(test_read_snapshot PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_read_snapshot.f90 + ${CMAKE_CURRENT_LIST_DIR}/write_extr_map.f90) + +target_include_directories(test_read_snapshot PRIVATE + ${netcdf95_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} + ${fortrangis_INCLUDE_DIR} ${contour_531_INCLUDE_DIR}) + +target_link_libraries(test_read_snapshot ${contour_531_LIBRARY} + ${shapelib_03_LIBRARY} ${nr_util_LIBRARY} ${fortrangis_LIBRARY} + ${fortranc_LIBRARY} ${shapelib_LIBRARY} ${GPC_F_LIBRARY} + ${netcdf95_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY}) + +# test_spher_polygon_area + +target_sources(test_spher_polygon_area PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_spher_polygon_area.f90) + +target_include_directories(test_spher_polygon_area PRIVATE + ${contour_531_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_spher_polygon_area ${contour_531_LIBRARY} + ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} ${fortranc_LIBRARY} + ${shapelib_LIBRARY} ${geometry_LIBRARY} ${jumble_LIBRARY} + ${GPC_F_LIBRARY} ${GPC_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY}) + +# test_local_extrema + +target_sources(test_local_extrema PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_local_extrema.f90 + ${CMAKE_CURRENT_LIST_DIR}/write_extr_map.f90) + +target_include_directories(test_local_extrema PRIVATE + ${netcdf95_INCLUDE_DIR} ${netcdff_INCLUDE_DIR}) + +target_link_libraries(test_local_extrema ${jumble_LIBRARY} + ${nr_util_LIBRARY} ${netcdf95_LIBRARY} ${netcdff_LIBRARY} + ${NetCDF_LIBRARY}) + +# test_set_max_speed + +target_sources(test_set_max_speed PRIVATE +${CMAKE_CURRENT_LIST_DIR}/test_set_max_speed.f90) + +target_include_directories(test_set_max_speed PRIVATE + ${contour_531_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_set_max_speed ${contour_531_LIBRARY} + ${geometry_LIBRARY} ${numer_rec_95_LIBRARY} ${jumble_LIBRARY} + ${nr_util_LIBRARY} ${netcdf95_LIBRARY} ${netcdff_LIBRARY} + ${NetCDF_LIBRARY} ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} + ${fortranc_LIBRARY} ${shapelib_LIBRARY}) + +# test_weight + +target_sources(test_weight PRIVATE ${CMAKE_CURRENT_LIST_DIR}/test_weight.f90) + +target_include_directories(test_weight PRIVATE ${contour_531_INCLUDE_DIR}) + +target_link_libraries(test_weight ${contour_531_LIBRARY}) + +# test_read_eddy + +target_sources(test_read_eddy PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_read_eddy.f90) + +target_include_directories(test_read_eddy PRIVATE + ${contour_531_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_read_eddy ${contour_531_LIBRARY} + ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} ${fortranc_LIBRARY} + ${shapelib_LIBRARY} ${GPC_F_LIBRARY} ${GPC_LIBRARY}) + +# test_get_1_outerm + +target_sources(test_get_1_outerm PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_get_1_outerm.f90) + +target_include_directories(test_get_1_outerm PRIVATE + ${contour_531_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_get_1_outerm ${contour_531_LIBRARY} + ${geometry_LIBRARY} ${jumble_LIBRARY} ${nr_util_LIBRARY} + ${netcdf95_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY} + ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} ${fortranc_LIBRARY} + ${shapelib_LIBRARY}) + +# test_set_all_outerm + +target_sources(test_set_all_outerm PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_set_all_outerm.f90) + +target_include_directories(test_set_all_outerm PRIVATE + ${contour_531_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_set_all_outerm ${contour_531_LIBRARY} + ${numer_rec_95_LIBRARY} ${jumble_LIBRARY} ${nr_util_LIBRARY} + ${geometry_LIBRARY} ${netcdf95_LIBRARY} ${netcdff_LIBRARY} + ${NetCDF_LIBRARY} ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} + ${fortranc_LIBRARY} ${shapelib_LIBRARY}) + +# test_good_contour + +target_sources(test_good_contour PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_good_contour.f90) + +target_include_directories(test_good_contour PRIVATE + ${contour_531_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_good_contour ${contour_531_LIBRARY} + ${geometry_LIBRARY} ${jumble_LIBRARY} ${nr_util_LIBRARY} + ${netcdf95_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY} + ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} ${fortranc_LIBRARY} + ${shapelib_LIBRARY}) + +# test_inside_4 + +target_sources(test_inside_4 PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_inside_4.f90) + +target_include_directories(test_inside_4 PRIVATE + ${geometry_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_inside_4 ${geometry_LIBRARY} + ${jumble_LIBRARY} ${nr_util_LIBRARY} ${shapelib_03_LIBRARY} + ${fortrangis_LIBRARY} ${fortranc_LIBRARY} ${shapelib_LIBRARY}) + +# test_mean_speed + +target_sources(test_mean_speed PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_mean_speed.f90) + +target_include_directories(test_mean_speed PRIVATE + ${contour_531_INCLUDE_DIR} ${netcdff_INCLUDE_DIR} ${fortrangis_INCLUDE_DIR}) + +target_link_libraries(test_mean_speed ${numer_rec_95_LIBRARY} ${nr_util_LIBRARY} + ${netcdf95_LIBRARY} ${netcdff_LIBRARY} ${NetCDF_LIBRARY} + ${shapelib_03_LIBRARY} ${fortrangis_LIBRARY} ${fortranc_LIBRARY} + ${shapelib_LIBRARY}) + +# test_spher_polyline_area + +target_sources(test_spher_polyline_area PRIVATE + ${CMAKE_CURRENT_LIST_DIR}/test_spher_polyline_area.f90) + +target_include_directories(test_spher_polyline_area PRIVATE + ${contour_531_INCLUDE_DIR}) + +target_link_libraries(test_spher_polyline_area ${geometry_LIBRARY}) diff --git a/Tests/test_get_1_outerm.f b/Tests/test_get_1_outerm.f90 similarity index 100% rename from Tests/test_get_1_outerm.f rename to Tests/test_get_1_outerm.f90 diff --git a/Tests/test_good_contour.f b/Tests/test_good_contour.f90 similarity index 100% rename from Tests/test_good_contour.f rename to Tests/test_good_contour.f90 diff --git a/Tests/test_inside_4.f b/Tests/test_inside_4.f90 similarity index 100% rename from Tests/test_inside_4.f rename to Tests/test_inside_4.f90 diff --git a/Tests/test_local_extrema.f b/Tests/test_local_extrema.f90 similarity index 100% rename from Tests/test_local_extrema.f rename to Tests/test_local_extrema.f90 diff --git a/Tests/test_max_speed_contour_ssh.f b/Tests/test_max_speed_contour_ssh.f90 similarity index 100% rename from Tests/test_max_speed_contour_ssh.f rename to Tests/test_max_speed_contour_ssh.f90 diff --git a/Tests/test_mean_speed.f b/Tests/test_mean_speed.f90 similarity index 100% rename from Tests/test_mean_speed.f rename to Tests/test_mean_speed.f90 diff --git a/Tests/test_nearby_extr.f b/Tests/test_nearby_extr.f90 similarity index 100% rename from Tests/test_nearby_extr.f rename to Tests/test_nearby_extr.f90 diff --git a/Tests/test_read_eddy.f b/Tests/test_read_eddy.f90 similarity index 100% rename from Tests/test_read_eddy.f rename to Tests/test_read_eddy.f90 diff --git a/Tests/test_read_snapshot.f b/Tests/test_read_snapshot.f90 similarity index 100% rename from Tests/test_read_snapshot.f rename to Tests/test_read_snapshot.f90 diff --git a/Tests/test_set_all_outerm.f b/Tests/test_set_all_outerm.f90 similarity index 100% rename from Tests/test_set_all_outerm.f rename to Tests/test_set_all_outerm.f90 diff --git a/Tests/test_set_max_speed.f b/Tests/test_set_max_speed.f90 similarity index 100% rename from Tests/test_set_max_speed.f rename to Tests/test_set_max_speed.f90 diff --git a/Tests/test_spher_polygon_area.f b/Tests/test_spher_polygon_area.f90 similarity index 100% rename from Tests/test_spher_polygon_area.f rename to Tests/test_spher_polygon_area.f90 diff --git a/Tests/test_spher_polyline_area.f b/Tests/test_spher_polyline_area.f90 similarity index 100% rename from Tests/test_spher_polyline_area.f rename to Tests/test_spher_polyline_area.f90 diff --git a/Tests/test_successive_overlap.f b/Tests/test_successive_overlap.f90 similarity index 100% rename from Tests/test_successive_overlap.f rename to Tests/test_successive_overlap.f90 diff --git a/Tests/test_weight.f b/Tests/test_weight.f90 similarity index 100% rename from Tests/test_weight.f rename to Tests/test_weight.f90 diff --git a/Tests/write_extr_map.f b/Tests/write_extr_map.f90 similarity index 100% rename from Tests/write_extr_map.f rename to Tests/write_extr_map.f90 diff --git a/derived_types.f b/derived_types.f90 similarity index 100% rename from derived_types.f rename to derived_types.f90 diff --git a/dispatch_snapshot.f b/dispatch_snapshot.f90 similarity index 100% rename from dispatch_snapshot.f rename to dispatch_snapshot.f90 diff --git a/extraction_eddies.f b/extraction_eddies.f90 similarity index 100% rename from extraction_eddies.f rename to extraction_eddies.f90 diff --git a/get_1_outerm.f b/get_1_outerm.f90 similarity index 100% rename from get_1_outerm.f rename to get_1_outerm.f90 diff --git a/get_snapshot.f b/get_snapshot.f90 similarity index 100% rename from get_snapshot.f rename to get_snapshot.f90 diff --git a/get_var.f b/get_var.f90 similarity index 100% rename from get_var.f rename to get_var.f90 diff --git a/good_contour.f b/good_contour.f90 similarity index 100% rename from good_contour.f rename to good_contour.f90 diff --git a/init_shapefiles.f b/init_shapefiles.f90 similarity index 100% rename from init_shapefiles.f rename to init_shapefiles.f90 diff --git a/inside_4.f b/inside_4.f90 similarity index 100% rename from inside_4.f rename to inside_4.f90 diff --git a/local_extrema.f b/local_extrema.f90 similarity index 100% rename from local_extrema.f rename to local_extrema.f90 diff --git a/max_speed_contour_ssh.f b/max_speed_contour_ssh.f90 similarity index 100% rename from max_speed_contour_ssh.f rename to max_speed_contour_ssh.f90 diff --git a/mean_speed.f b/mean_speed.f90 similarity index 100% rename from mean_speed.f rename to mean_speed.f90 diff --git a/nearby_extr.f b/nearby_extr.f90 similarity index 100% rename from nearby_extr.f rename to nearby_extr.f90 diff --git a/outermost_possible_level.f b/outermost_possible_level.f90 similarity index 100% rename from outermost_possible_level.f rename to outermost_possible_level.f90 diff --git a/read_eddy.f b/read_eddy.f90 similarity index 100% rename from read_eddy.f rename to read_eddy.f90 diff --git a/read_field_indices.f b/read_field_indices.f90 similarity index 100% rename from read_field_indices.f rename to read_field_indices.f90 diff --git a/read_snapshot.f b/read_snapshot.f90 similarity index 100% rename from read_snapshot.f rename to read_snapshot.f90 diff --git a/receive_snapshot.f b/receive_snapshot.f90 similarity index 100% rename from receive_snapshot.f rename to receive_snapshot.f90 diff --git a/send_snapshot.f b/send_snapshot.f90 similarity index 100% rename from send_snapshot.f rename to send_snapshot.f90 diff --git a/set_all_outerm.f b/set_all_outerm.f90 similarity index 100% rename from set_all_outerm.f rename to set_all_outerm.f90 diff --git a/set_max_speed.f b/set_max_speed.f90 similarity index 100% rename from set_max_speed.f rename to set_max_speed.f90 diff --git a/spher_polygon_area.f b/spher_polygon_area.f90 similarity index 100% rename from spher_polygon_area.f rename to spher_polygon_area.f90 diff --git a/spher_polyline_area.f b/spher_polyline_area.f90 similarity index 100% rename from spher_polyline_area.f rename to spher_polyline_area.f90 diff --git a/successive_overlap.f b/successive_overlap.f90 similarity index 100% rename from successive_overlap.f rename to successive_overlap.f90 diff --git a/weight.f b/weight.f90 similarity index 100% rename from weight.f rename to weight.f90 diff --git a/write_eddy.f b/write_eddy.f90 similarity index 100% rename from write_eddy.f rename to write_eddy.f90