From 8917e20945c5fd3602deedbe1214e8e020f023b3 Mon Sep 17 00:00:00 2001
From: George Faykin <pofnutsy@gmail.com>
Date: Mon, 7 Oct 2024 20:25:26 +0300
Subject: [PATCH] Rename few variables, correction

---
 ...bs_data_rostov.csv => obs_data_Rostov.csv} |  0
 data/{obs_data_trgk.csv => obs_data_TRGK.csv} |  0
 ...{obs_data_vldmr.csv => obs_data_VLDMR.csv} |  0
 plot.py                                       | 32 +++++++++++-----
 .../carbon_models/carbon_model_INMCM_aux.f90  | 13 +++----
 .../carbon_models/carbon_model_ROTHC_aux.f90  | 38 ++++++++++---------
 ui1_config.nml                                |  4 +-
 7 files changed, 50 insertions(+), 37 deletions(-)
 rename data/{obs_data_rostov.csv => obs_data_Rostov.csv} (100%)
 rename data/{obs_data_trgk.csv => obs_data_TRGK.csv} (100%)
 rename data/{obs_data_vldmr.csv => obs_data_VLDMR.csv} (100%)

diff --git a/data/obs_data_rostov.csv b/data/obs_data_Rostov.csv
similarity index 100%
rename from data/obs_data_rostov.csv
rename to data/obs_data_Rostov.csv
diff --git a/data/obs_data_trgk.csv b/data/obs_data_TRGK.csv
similarity index 100%
rename from data/obs_data_trgk.csv
rename to data/obs_data_TRGK.csv
diff --git a/data/obs_data_vldmr.csv b/data/obs_data_VLDMR.csv
similarity index 100%
rename from data/obs_data_vldmr.csv
rename to data/obs_data_VLDMR.csv
diff --git a/plot.py b/plot.py
index c1f463d..3eee9c3 100644
--- a/plot.py
+++ b/plot.py
@@ -6,6 +6,11 @@ import matplotlib.pyplot as plt
 import numpy as np
 import pandas as pd
 
+#nml = f90nml.read(self.nml_path)
+
+#start_lon = nml['drivpar_basic']['lam_min_']
+
+
 '''
 Script for plotting. 
 Prerequisites:
@@ -21,23 +26,30 @@ Usage:
 model_data_paths = [
     'results/Rostov_1.txt',
     'results/Rostov_2.txt',
-    'results/Rostov_3.txt'
+    'results/Rostov_3.txt'   
 ]
-obs_data_path = 'data/obs_data_rostov.csv'
+obs_data_path = 'data/obs_data_Rostov.csv'
+#obs_data_path = f'data/obs_data_{station}.csv'
+#else
+#model_data_paths = [
+#    'results/common.txt'
+#]
 
 
-
-# if type = INMCM
-pools = {'Csoil' : 'Почва',         #Для модели INMCM
+# if carbon_model_type = INMCM
+pools = {'Csoil' : 'Почва',
          'Csoilb': 'Почва типа b',}
-
-# if type = ROTHC
-#pools = {'CDPM': 'Разлагаемый растительный материал', #Для модели Rothc
+# elif carbon_model_type = ROTHC
+#pools = {'CDPM': 'Разлагаемый растительный материал',
 #         'CRPM': 'Устойчивый растительный материал',
 #         'CBIO': 'Пул микробной биомассы',
 #         'CHUM': 'Долгоживущий гумусовый пул'}
-
-# if type = SOCS
+# elif carbon_model_type = SOCS
+#pools = {'csoil1': 'Огранический углерод в почве',
+#         'csoil2': 'Минерализованный углерод в почве',}
+#else
+#pools = {'C1': 'Pool 1',
+#         'C2': 'Pool 2',}
 
 
 
diff --git a/source/carbon/carbon_models/carbon_model_INMCM_aux.f90 b/source/carbon/carbon_models/carbon_model_INMCM_aux.f90
index cc6ac47..c1f0469 100644
--- a/source/carbon/carbon_models/carbon_model_INMCM_aux.f90
+++ b/source/carbon/carbon_models/carbon_model_INMCM_aux.f90
@@ -5,7 +5,7 @@ module carbon_model_inmcm_aux
 
     use const, only : pi, r_earth, yrs
     use environment_model_inmcm, only : nv2
-    use environment_core, only : Tsoil, Temp, e, Wsoil, Isoil
+    use environment_core, only : Tsoil, Temp, Wsoil, Isoil
     use carbon_model_to_core_arg_kit, only : year_min, year_max, nmonth
     use grid, only : dt
 
@@ -82,7 +82,7 @@ module carbon_model_inmcm_aux
 
     ! ------ Climate variables --------
 	real :: in_temp(0:mnc)                    !< Поступление извне данных cредней температуры почвы в месяц, [Celsius]
-	real :: in_e(0:mnc)                       !< Поступление извне данных влажности почвы, [dim]
+	real :: in_wsoil(0:mnc)                       !< Поступление извне данных влажности почвы, [dim]
     ! ------ Litterfall --------
     real :: in_lambd(0:mnc)                   !< Поступление извне данных по поступлению углерода в почву, [kg/m**3 / year]
     real :: lambd                             !< Поступлени еуглерода в почву в интервал времени dt, [kg/m**3 / year / dt](lambdac)
@@ -110,7 +110,7 @@ contains
         close (1)
 
         open (unit = 1, file = 'initial_value/'//trim(station)//'_MOI.txt', status='unknown')
-        read(1,*) in_e(1:mnc)
+        read(1,*) in_wsoil(1:mnc)
         close (1)
 
         open (unit = 1, file = 'initial_value/'//trim(station)//'_'//trim(opt)//'.txt', status='unknown')
@@ -124,7 +124,7 @@ contains
         if (dt == 86400) then ! Для шага по времени день:
           k = 0
           in_temp(0) = in_temp(1)
-          in_e(0) = in_e(1)
+          in_wsoil(0) = in_wsoil(1)
           in_lambd(0) = in_lambd(1)
         else                  ! Для шага по времени месяц:
           k = 1
@@ -226,12 +226,12 @@ contains
 
         if (dt == 86400) then ! Для шага по времени день:
           Temp(ii,jj) = in_temp(k)*sin(pi*(j-1)/(N(i)-1)) + in_temp(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
-          e(ii,jj) =   in_e(k)*sin(pi*(j-1)/(N(i)-1)) +   in_e(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
+          Wsoil(ii,jj,:) =   in_wsoil(k)*sin(pi*(j-1)/(N(i)-1)) +   in_wsoil(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
           lambd = in_lambd(k)/(N(i))
           if (j == (N(i)/2)) k = k+1
         else                  ! Для шага по времени месяц:
           Temp(ii,jj) = in_temp(k)
-          e(ii,jj) = in_e(k)
+          Wsoil(ii,jj,:) = in_wsoil(k)
           lambd = in_lambd(k)
           k = k+1
         end if
@@ -250,7 +250,6 @@ contains
 
         use const, only : Kelvin0, Tf, rho_w
         use grid, only : ms, ml, z, dz, date_c
-        use environment_core, only : Tsoil, Wsoil, Isoil
         use environment_model_inmcm, only : g2gw_to_cmw, wssl_glob, wssg_glob, roots, rhodry, tlai, fsun, fsha
 
         integer, intent(in) :: ii, jj, nn
diff --git a/source/carbon/carbon_models/carbon_model_ROTHC_aux.f90 b/source/carbon/carbon_models/carbon_model_ROTHC_aux.f90
index 5e80e96..ceff924 100644
--- a/source/carbon/carbon_models/carbon_model_ROTHC_aux.f90
+++ b/source/carbon/carbon_models/carbon_model_ROTHC_aux.f90
@@ -1,8 +1,9 @@
 module carbon_model_rothc_aux
 
     use const, only : yrs, day2sec, pi
+
     use carbon_model_to_core_arg_kit, only : year_min, year_max, nmonth
-    use grid, only : dt
+    use grid, only: date_c, date_fst, date_lst, dt
 
 implicit none
     ! Интерфейс
@@ -12,6 +13,8 @@ implicit none
     character(len=2)  :: opt     = '2'       !< Имя варианта подачи удобрения               ! Нужно указать номер
 
     ! ------- Serve value -------
+!	integer :: year_min = date_fst%y
+!	integer :: year_max = date_lst%y 
     integer, parameter :: mnc = (year_max - year_min + 1)*nmonth !Как часть параметров для задания климатических данных
                                               !< Колличество месяцев в расчете
     integer :: k                              !< Номер месяца с начала работы программы !Как часть параметров для шага по времени
@@ -62,8 +65,8 @@ implicit none
     real :: Tsoil                             !< Средняя температура почвы в интервал времени dt, [Celsius]
 	real :: in_veg(0:mnc)                     !< Поступление извне данных средней концентрации растений в месяц, [%]
     real :: veg                               !< Средняя концентрация растений в интервал времени dt, [%]
-	real :: in_e(0:mnc)                       !< Поступление извне данных влажности почвы, [dim]
-    real :: e                                 !< Влажность почвы в интервал времени dt, [dim]
+	real :: in_wsoil(0:mnc)                   !< Поступление извне данных влажности почвы, [dim]
+    real :: Wsoil                             !< Влажность почвы в интервал времени dt, [dim]
     real :: sw                                !< Влажность увядания DAO: 0.120 Rostov: 0.146
     ! ------ Litterfall --------
     real :: in_lambd(0:mnc)                   !< Поступление извне данных по поступлению углерода в почву, [kg/m**3 / year]
@@ -88,7 +91,7 @@ contains
         close (1)
 
         open (unit = 1, file = 'initial_value/'//trim(station)//'_MOI.txt', status='unknown')
-        read(1,*) in_e(1:mnc)
+        read(1,*) in_Wsoil(1:mnc)
         close (1)
 
         open (unit = 1, file = 'initial_value/'//trim(station)//'_'//trim(opt)//'.txt', status='unknown')
@@ -118,9 +121,9 @@ contains
 ! @todo учесть шаг по времени 1 час
       if (dt == 86400) then ! Для шага по времени день:
         k = 0
-        in_temp(0) = in_temp(1)
-        in_veg(0) = in_veg(1)
-        in_e(0) = in_e(1)
+        in_temp(0)  = in_temp(1)
+        in_veg(0)   = in_veg(1)
+        in_wsoil(0) = in_wsoil(1)
         in_lambd(0) = in_lambd(1)
       else                  ! Для шага по времени месяц:
         k = 1
@@ -140,7 +143,6 @@ contains
     subroutine carbon_model_calc_at_cell(ii,jj)
 
 ! ---- Part of environmental_calc_at_cell(ii,jj) ----
-        use grid, only: date_c
 
         integer, intent(in) :: ii, jj
         integer i, N(12),j       !< count
@@ -152,14 +154,14 @@ contains
     ! -------------
 
       if (dt == 86400) then ! Для шага по времени день:
-        Temp = in_temp(k)*sin(pi*(j-1)/(N(i)-1)) + in_temp(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
-        e =      in_e(k)*sin(pi*(j-1)/(N(i)-1)) +  in_e(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
+        Temp =  in_temp(k)*sin(pi*(j-1)/(N(i)-1))  +   in_temp(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
+        Wsoil = in_wsoil(k)*sin(pi*(j-1)/(N(i)-1)) +  in_wsoil(k+1)*(1-sin(pi*(j-1)/(N(i)-1)))
         veg = in_veg(k)
         lambd = in_lambd(k)/N(i)
         if (j == (N(i)/2)) k = k+1
       else                  ! Для шага по времени месяц:
         Temp = in_temp(k)
-        e = in_e(k)
+        Wsoil = in_wsoil(k)
         veg = in_veg(k)
         lambd = in_lambd(k)
         k = k+1
@@ -167,11 +169,11 @@ contains
 
       Tsoil = Temp                        ! температура почвы равна температуре воздуха
 ! ---- Part of rothc_calc_at_cell(ii,jj) ----
-        if (e >= s0) then
-          Fs = 1 - 0.8*(e-s0)
-        else if (smin < e .and. e < s0) then
-          Fs = 0.2 + 0.8*(e-smin)/(s0-smin)
-        else if (e <= smin) then
+        if (Wsoil >= s0) then
+          Fs = 1 - 0.8*(Wsoil-s0)
+        else if (smin < Wsoil .and. Wsoil < s0) then
+          Fs = 0.2 + 0.8*(Wsoil-smin)/(s0-smin)
+        else if (Wsoil <= smin) then
           Fs = 0.2
         end if
 
@@ -197,8 +199,8 @@ contains
 
         Rs = RDPM + RRPM + RBIO + RHUM
 
-        !print*, 'important thing 1, ', trim(station)//'_Temp.txt'
-        !print*, 'important thing 2, ', mnc
+        print*, 'date_fst, ', date_fst%y
+        print*, 'date_lst, ', date_lst%y
         !print*, 'important thing 3, ', j
         !print*, 'important thing 4, ',  Temp(k)
 
diff --git a/ui1_config.nml b/ui1_config.nml
index dcb225f..aa9f305 100644
--- a/ui1_config.nml
+++ b/ui1_config.nml
@@ -12,7 +12,7 @@
 ! -----------------------------------------------------------------
 
     !> Углеродная модель:
-    carbon_model_type = 'rothc'
+    carbon_model_type = 'inmcm'
     !
     ! 'inmcm' - модель INMCM [1,2]
     ! 'socs'  - модель SOCS [3]
@@ -112,7 +112,7 @@
 
     testing_log_mode = 'read'  ! none, write, read
 
-    nv_singlecolumn = 1       ! Для модели INMCM нужно поставить 12, для rothc и SOCS 1
+    nv_singlecolumn = 12       ! Для модели INMCM нужно поставить 12, для rothc и SOCS 1
 
     environment_model_type = 'inmcm'  ! inmcm
 
-- 
GitLab