From 8e7a25563d261978109d57338a979fa6cbc336ca Mon Sep 17 00:00:00 2001
From: George Faykin <pofnutsy@gmail.com>
Date: Thu, 24 Apr 2025 20:58:58 +0300
Subject: [PATCH] Automation for date selection, checking_1

---
 source/config.f90                             | 94 +++++++++----------
 .../environment/environment_data_station.f90  | 16 ++--
 source/grid.f90                               |  4 +-
 station_config.nml                            |  8 +-
 ui1_config.nml                                |  6 +-
 5 files changed, 67 insertions(+), 61 deletions(-)

diff --git a/source/config.f90 b/source/config.f90
index f1ab5c2..984d2d7 100644
--- a/source/config.f90
+++ b/source/config.f90
@@ -17,7 +17,7 @@ module config
 	character(len_default) :: station_name
     character(len_default) :: station_opt
 
-! пространственная сетка
+ ! пространственная сетка
     character(len_default) :: spatial_grid_mode
     real :: spatial_grid_res(2)
     character(len_default) :: spatial_sample_mode
@@ -26,7 +26,7 @@ module config
     real :: point(2)
     real :: polygon(4)
 
-! продолжительность расчета
+ ! продолжительность расчета
     character(len_default) :: dt_mode
     integer :: dt
     character(len_default) :: datetime_init_mode
@@ -36,7 +36,7 @@ module config
     character(len_default) :: datetime_last
     integer :: UTC = 0
 
-! продвинутые настройки
+ ! продвинутые настройки
     logical :: if_datafile_read_at_first
     logical :: if_out_yearly
     logical :: if_standard_print
@@ -45,7 +45,7 @@ module config
     integer :: nv_singlecolumn
     character(len_default) :: environment_model_type
 	
-! Данные для станций наблюдения за климатом
+ ! Данные для станций наблюдения за климатом
     character(len_default) :: datetime_init_1
     character(len_default) :: datetime_last_1
     character(len_default) :: datetime_init_2
@@ -57,38 +57,38 @@ module config
     character(len_default) :: datetime_init_5
     character(len_default) :: datetime_last_5
 
-    namelist /config_namelist/ &
-    & carbon_model_type, &
-    & environment_data_type, &
-    & lsm_datafile, &
-    & lsm_dataformat, &
-    & station_name, &
-    & station_opt, &
-    & spatial_grid_mode, &
-    & spatial_grid_res, &
-    & spatial_sample_mode, &
-    & id, &
-    & ich, &
-    & point, &
-    & polygon, &
-    & dt_mode, &
-    & dt, &
-    & datetime_init_mode, &
-    & datetime_init, &
-    & ntime_mode, &
-    & ntime, &
-    & datetime_last, &
-    & UTC, &
-    & if_datafile_read_at_first, &
-    & if_out_yearly, &
-    & if_standard_print, &
-    & if_standard_output, &
-    & testing_log_mode, &
-    & nv_singlecolumn, &
+    namelist /config_namelist/  &
+    & carbon_model_type,        &
+    & environment_data_type,    &
+    & lsm_datafile,             &
+    & lsm_dataformat,           &
+    & station_name,             &
+    & station_opt,              &
+    & spatial_grid_mode,        &
+    & spatial_grid_res,         &
+    & spatial_sample_mode,      &
+    & id,                       &
+    & ich,                      &
+    & point,                    &
+    & polygon,                  &
+    & dt_mode,                  &
+    & dt,                       &
+    & datetime_init_mode,       &
+    & datetime_init,            &
+    & ntime_mode,               &
+    & ntime,                    &
+    & datetime_last,            &
+    & UTC,                      &
+    & if_datafile_read_at_first,&
+    & if_out_yearly,            &
+    & if_standard_print,        &
+    & if_standard_output,       &
+    & testing_log_mode,         &
+    & nv_singlecolumn,          &
     & environment_model_type
 
     namelist /station_config_namelist/ &
-    & datetime_init_1, &     
+    & datetime_init_1, &
     & datetime_last_1, &
     & datetime_init_2, &
     & datetime_last_2, &
@@ -123,21 +123,21 @@ module config
         character(len_default) :: isoil
     end type
     type(namespace_type) :: nc_namespace
-    
+
     contains
 
         subroutine config_init()
 
-            open(1, file='ui1_config.nml', status='old')
-            read(1, nml=config_namelist)
-            close(1)
-
-            open(1, file='station_config.nml', status='old')
-            read(1, nml=station_config_namelist)
+            open(1, file = 'ui1_config.nml', status = 'old', action = 'read')
+            read(1, nml = config_namelist)
             close(1)
 
             call config_check()
-            
+
+            open(10, file = 'station_config.nml', status = 'old', action = 'read')
+            read(10, nml = station_config_namelist)
+            close(10)
+
             select case (lsm_dataformat)
                 case('inmcm')
                     nc_namespace%lon   = 'lon'
@@ -273,13 +273,13 @@ module config
                 stop "check failed : dt_mode == 'auto' requires environment_data_type == 'lsm_offline'"
             endif
             
-            if (datetime_init_mode == 'auto' .and. environment_data_type /= 'lsm_offline') then
-                stop "check failed : datetime_init_mode == 'auto' requires environment_data_type == 'lsm_offline'"
-            endif
+           ! if (datetime_init_mode == 'auto' .and. environment_data_type /= 'lsm_offline') then
+           !     stop "check failed : datetime_init_mode == 'auto' requires environment_data_type == 'lsm_offline'"
+           ! endif
             
-            if (ntime_mode == 'auto' .and. environment_data_type /= 'lsm_offline') then
-                stop "check failed : ntime_mode == 'auto' requires environment_data_type == 'lsm_offline'"
-            endif
+           ! if (ntime_mode == 'auto' .and. environment_data_type /= 'lsm_offline') then
+           !     stop "check failed : ntime_mode == 'auto' requires environment_data_type == 'lsm_offline'"
+           ! endif
         
         end subroutine
         
diff --git a/source/environment/environment_data_station.f90 b/source/environment/environment_data_station.f90
index dd628d7..f3d2e9a 100644
--- a/source/environment/environment_data_station.f90
+++ b/source/environment/environment_data_station.f90
@@ -94,32 +94,32 @@ contains
         end select		
 
        ! External carbon intake
-        open (unit = 1, file = 'initial_value/'//'carbon_intake/'//trim(station_name)//'_org_'//trim(station_opt)//'.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'carbon_intake/'//trim(station_name)//'_org_'//trim(station_opt)//'.txt', status='old', action = 'read')
         read(1,*) in_organic(1:mnc)
         close (1)
 
-        open (unit = 1, file = 'initial_value/'//'carbon_intake/'//trim(station_name)//'_FYM_'//trim(station_opt)//'.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'carbon_intake/'//trim(station_name)//'_FYM_'//trim(station_opt)//'.txt', status='old', action = 'read')
         read(1,*) in_FYM(1:mnc)
         close (1)
 
        ! External climate intake
-        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Temp.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Temp.txt', status='old', action = 'read')
         read(1,*) in_temp(1:mnc)
         close (1)
 
-        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_MOI.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_MOI.txt', status='old', action = 'read')
         read(1,*) in_wsoil(1:mnc)
         close (1)
 
-        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Veg.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Veg.txt', status='old', action = 'read')
         read(1,*) in_veg(1:mnc)
         close (1)
 
-        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Rainfall.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Rainfall.txt', status='old', action = 'read')
         read(1,*) in_rainfall(1:mnc)
         close (1)
 
-        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Evpar.txt', status='unknown')
+        open (unit = 1, file = 'initial_value/'//'climate_intake/'//trim(station_name)//'_Evpar.txt', status='old', action = 'read')
         read(1,*) in_Evpar(1:mnc)
         close (1)
 
@@ -150,7 +150,7 @@ contains
         mncX = (date_fst%y - mnclot_fst(station_n))*nmonth + date_lst%m
       end if
 	  
-! Набор переменных которые должны быть, но не данны через качественные внешние данные
+! Набор переменных которые должны быть, но не даны через качественные внешние данные
       p(:,:) = 980.                                  !< pressure
       Rlwd(:,:) = 350.                               !< longwave radiation
       ra(:,:) = 20.                                  !< aerodynamical resistance
diff --git a/source/grid.f90 b/source/grid.f90
index b613fc9..14e834c 100644
--- a/source/grid.f90
+++ b/source/grid.f90
@@ -416,7 +416,7 @@ contains
                 case('TRGK')
                   DI = datetime_init_3
                   DL = datetime_last_3
-                case('VLDR')
+                case('VLDMR')
                   DI = datetime_init_4
                   DL = datetime_last_4
                 case('Rostov')
@@ -429,7 +429,7 @@ contains
                 dt_nc = miss_v
                 jday0_nc = miss_v
         end select
-        
+
         select case(dt_mode)
             case('auto')
                 dt = dt_nc
diff --git a/station_config.nml b/station_config.nml
index 57b39cc..9f24d29 100644
--- a/station_config.nml
+++ b/station_config.nml
@@ -11,17 +11,23 @@
     !> station_name = 'DAO4':
        datetime_init_1 = '1937-01-01 00:00:00'
        datetime_last_1 = '2012-01-01 00:00:00'
+    
     !> station_name = 'DAO3':
        datetime_init_2 = '1939-01-01 00:00:00'
        datetime_last_2 = '2012-01-01 00:00:00'
+    
     !> station_name = 'TRGK':
        datetime_init_3 = '1956-01-01 00:00:00'
        datetime_last_3 = '2018-01-01 00:00:00'
+    
     !> station_name = 'VLDR':
        datetime_init_4 = '1968-01-01 00:00:00'
        datetime_last_4 = '2018-01-01 00:00:00'
+    
     !> station_name = 'Rostov':
        datetime_init_5 = '1975-01-01 00:00:00'
        datetime_last_5 = '2018-01-01 00:00:00'
 
-/
\ No newline at end of file
+
+! -----------------------------------------------------------------
+/
diff --git a/ui1_config.nml b/ui1_config.nml
index 7d99118..7016f81 100644
--- a/ui1_config.nml
+++ b/ui1_config.nml
@@ -12,7 +12,7 @@
 ! -----------------------------------------------------------------
 
     !> Углеродная модель:
-    carbon_model_type = 'rothc'
+    carbon_model_type = 'socs'
     !
     ! 'inmcm' - модель inmc [1,2]
     ! 'socs'  - модель SOCS [3]
@@ -100,13 +100,13 @@
         ! '2629800' - 1 месяц
 
     !> Дата и время на момент старта:
-    datetime_init_mode = 'manual' 
+    datetime_init_mode = 'auto'
     !
     ! 'auto' - получить из входного файла (для lsm_offline)
     ! 'manual' - задать вручную [yyyy-mm-dd hh:mm:ss]
         datetime_init = '1975-01-01 00:00:00'
     !> Продолжительность расчета:
-    ntime_mode = 'datetime_last' 
+    ntime_mode = 'auto' 
     !
     ! 'auto' - до конца входного файла (для lsm_offline)
     ! 'ntime' - указанное число шагов
-- 
GitLab