From 8c6d326863d7b8fff74d016d5c06b567fb6d2f4b Mon Sep 17 00:00:00 2001
From: Evgeny Mortikov <evgeny.mortikov@gmail.com>
Date: Tue, 19 Dec 2023 22:43:04 +0300
Subject: [PATCH] adding keys for ocean and lake datasets

---
 srcF/sfx_main.f90 | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

diff --git a/srcF/sfx_main.f90 b/srcF/sfx_main.f90
index 0e5078a..1c22926 100644
--- a/srcF/sfx_main.f90
+++ b/srcF/sfx_main.f90
@@ -32,6 +32,8 @@ program sfx_main
     integer, parameter :: dataset_MOSAiC = 1        !< MOSAiC campaign
     integer, parameter :: dataset_IRGASON = 2       !< IRGASON data
     integer, parameter :: dataset_SHEBA = 3         !< please spell 'SHIBA'
+    integer, parameter :: dataset_LAKE = 4          !< Kuivajarvi data
+    integer, parameter :: dataset_OCEAN = 5         !< Ocean data
     integer, parameter :: dataset_USER = 4          !< used defined dataset
 
 
@@ -82,6 +84,8 @@ program sfx_main
     character(len = 128), parameter :: arg_key_dataset_mosaic = 'mosaic'
     character(len = 128), parameter :: arg_key_dataset_irgason = 'irgason'
     character(len = 128), parameter :: arg_key_dataset_sheba = 'sheba'
+    character(len = 128), parameter :: arg_key_dataset_lake = 'lake'
+    character(len = 128), parameter :: arg_key_dataset_ocean = 'ocean'
     character(len = 128), parameter :: arg_key_dataset_user = 'user'
 
     integer :: is_output_set
@@ -111,7 +115,8 @@ program sfx_main
             write(*, *) ' --model [key]'
             write(*, *) '    key = esm (default) || log || most || sheba'
             write(*, *) ' --dataset [key]'
-            write(*, *) '    key = mosaic (default) || irgason || sheba || user [files]'
+            write(*, *) '    key = mosaic (default) || irgason || sheba'
+            write(*, *) '        = lake || ocean || user [files]'
             write(*, *) '    files = in-common-file in-file out-file'
             write(*, *) ' --output [file]'
             write(*, *) '    set output filename '
@@ -150,6 +155,10 @@ program sfx_main
                 dataset_id = dataset_IRGASON
             else if (trim(arg) == trim(arg_key_dataset_sheba)) then
                 dataset_id = dataset_SHEBA
+            else if (trim(arg) == trim(arg_key_dataset_lake)) then
+                dataset_id = dataset_LAKE
+            else if (trim(arg) == trim(arg_key_dataset_ocean)) then
+                dataset_id = dataset_OCEAN
             else if (trim(arg) == trim(arg_key_dataset_user)) then
                 dataset_id = dataset_USER
                 if (i + 4 > num_args) then
@@ -224,6 +233,18 @@ program sfx_main
         filename_in_common = 'data/SHEBA1_zh.txt'
         filename_in = 'data/SHEBA1.txt'
         if (is_output_set == 0) filename_out = 'out_SHEBA.txt'
+    else if (dataset_id == dataset_LAKE) then
+        dataset_name = 'LAKE'
+
+        filename_in_common = 'data/Kuivajarvi_zh.txt'
+        filename_in = 'data/Kuivajarvi.txt'
+        if (is_output_set == 0) filename_out = 'out_Kuivajarvi.txt'
+    else if (dataset_id == dataset_OCEAN) then
+        dataset_name = 'OCEAN'
+
+        filename_in_common = 'data/Ocean_zh.txt'
+        filename_in = 'data/Ocean.txt'
+        if (is_output_set == 0) filename_out = 'out_Ocean.txt'
     else if (dataset_id == dataset_USER) then
         dataset_name = 'USER'
     else
@@ -240,10 +261,14 @@ program sfx_main
 
 
     !< @brief define number of cells
-    open(1, file= filename_in, status ='old')
-    status = 0
+    open(1, file= filename_in, iostat = status, status ='old')
+    if (status /= 0) then
+        write(*, *) ' FAILURE! > unable to open file: ', trim(filename_in)
+        stop
+    end if
 
     num = 0
+    status = 0
     do while (status.eq.0)
         read (1, *, iostat = status) meteo_cell%U, meteo_cell%dT, meteo_cell%Tsemi, meteo_cell%dQ
         num = num + 1
-- 
GitLab