Skip to content
Snippets Groups Projects
Commit 3200361e authored by a_medvedev's avatar a_medvedev
Browse files

! версия для долгого расчета

parent 7b612112
Branches
No related tags found
No related merge requests found
......@@ -174,10 +174,18 @@ do t = 1, ntime
call date_shift(dt)
! вывод данных:
if (hour /= hour_mem) then
print'(" ",i4,"-",i2.2,"-",i2.2," ",i2.2,":",i2.2,":",i2.2)', year, month, day, hour, minute, second
hour_mem = hour
endif
if (month /= month_mem) then
print'(" ",i4.4,"-",i2.2,"-",i2.2," ",i2.2,":",i2.2,":",i2.2)', year, month, day, hour, minute, second
print*, adc6(i0,j0,nv), adc8(i0,j0,nv), adc8b(i0,j0,nv)
print*, Cveg(i0,j0), Csoil(i0,j0), Csoilb(i0,j0), Catm(i0,j0)
if (pool_mem(i0,j0,n_Cveg) > 0) print*, (pool(i0,j0,n_Cveg) - pool_mem(i0,j0,n_Cveg))/pool_mem(i0,j0,n_Cveg)
if (pool_mem(i0,j0,n_Csoil) > 0) print*, (pool(i0,j0,n_Csoil) - pool_mem(i0,j0,n_Csoil))/pool_mem(i0,j0,n_Csoil)
if (pool_mem(i0,j0,n_Csoilb) > 0) print*, (pool(i0,j0,n_Csoilb) - pool_mem(i0,j0,n_Csoilb))/pool_mem(i0,j0,n_Csoilb)
print*, 'eps = ', (adc6(i0,j0,nv) - Cveg(i0,j0)) / adc6(i0,j0,nv) * 100, '%'
print*, '---'
print*, 'fpsn', fpsn(nv), fpsn_new(i0,j0)/umol2kg
......@@ -192,9 +200,16 @@ do t = 1, ntime
print*, 'ddc6b', ddc6b(nv)/umol2kg/dt, ddc6b_new(i0,j0)/umol2kg
print*, 'ddc8', ddc8(nv)/umol2kg/dt, ddc8_new(i0,j0)/umol2kg
print*
hour_mem = hour
month_mem = month
endif
if (year /= year_mem) then
write(2,*) year, Cveg(i0,j0), Csoil(i0,j0), Csoilb(i0,j0), Catm(i0,j0)
year_mem = year
endif
pool_mem = pool
enddo
......@@ -225,11 +240,11 @@ contains
Tsrf(i,j) = 20. + 8.*cos(w*(h-12.5)) !< temperature of surface
Wind(i,j) = 2 + 1.*cos(w*(h-13)) !< wind
p(i,j) = 980. !< pressure
e(i,j) = 15. + 2.*cos(2*w*(h-7)) !< humidity
Rswd(i,j) = max(0.,800.*cos(w*(h-12))) !< shortwave radiation
e(i,j) = 10. + 2.*cos(2*w*(h-7)) !< humidity
Rswd(i,j) = max(0.,600.*cos(w*(h-12))) !< shortwave radiation
Rlwd(i,j) = 350. !< longwave radiation
pr(i,j) = 0. !< precipitation
ra(i,j) = 20. !< aerodynamical resistance
ra(i,j) = 1. !< aerodynamical resistance
do k = 1, ms-1
Tsoil(i,j,:) = miss_v
Wsoil(i,j,:) = miss_v
......
......@@ -19,6 +19,8 @@ integer i0m_loc, i1m_loc, j0m_loc, j1m_loc !< для запоминания з
! ------------------------------------------------- Date and time ------------------------------------------------
integer time, second, minute, day, hour, month, year
integer :: hour_mem = miss_v !< запоминает значение hour для почасового вывода данных
integer :: month_mem = miss_v !< запоминает значение month для ежемесячного вывода данных
integer :: year_mem = miss_v !< запоминает значение year для ежегодного вывода данных
! ---------------------------------------------- Environmental factors --------------------------------------
!Level 1(necessary)
real, allocatable, dimension(:,:), target :: Temp !< Temperature of air, С
......@@ -40,7 +42,7 @@ real, allocatable, dimension(:,:,:), target :: Isoil !< Mass ice content at s
! пулы и потоки:
real, allocatable, dimension(:,:,:) :: adc6, adc8, adc8b, adefora, adeforb, amndf3 !< inmcm pools
real, allocatable, dimension(:,:,:), target :: pool !< new pools: core
real, allocatable, dimension(:,:,:), target :: pool, pool_mem !< new pools: core
real, allocatable, dimension(:,:,:,:,:), target :: flux !< new fluxes: core
! переходы между пулами:
......@@ -100,6 +102,7 @@ contains
allocate(adeforb(i0m:i1m, j0m:j1m, nv2))
allocate(amndf3(i0m:i1m, j0m:j1m, nv2))
allocate(pool(i0m:i1m, j0m:j1m, npool))
allocate(pool_mem(i0m:i1m, j0m:j1m, npool))
allocate(flux(i0m:i1m, j0m:j1m, npool, npool, nflux_default))
allocate(nflux(npool, npool))
......
......@@ -35,19 +35,19 @@ integer, parameter :: nvm = nv2
integer, parameter :: nv = 3 ! ...вот для этого (номер 3 - смешанный лес)
! ------------------------------------ Calculation options ----------------------------------------
! широтно-долготная сетка:
integer, parameter :: i0m = 0 !< Longitude of the Western edge of regional domain, number of grid
integer, parameter :: i0m = 1 !< Longitude of the Western edge of regional domain, number of grid
integer, parameter :: i1m = 1 !< Longitude of the Eastern edge of regional domain, number of grid
integer, parameter :: j0m = 0 !< Latitude of the Southern edge of regional domain, number of grid
integer, parameter :: j0m = 1 !< Latitude of the Southern edge of regional domain, number of grid
integer, parameter :: j1m = 1 !< Latitude of the Northern edge of regional domain, number of grid
integer, parameter :: i0 = i0m !< Longitude min
integer, parameter :: i1 = i1m !< Longitude max
integer, parameter :: j0 = j0m !< Latitude min
integer, parameter :: j1 = j1m !< Latitude max
! сетка по времени:
integer, parameter :: ntime = 100 !< Number of timesteps
integer, parameter :: ntime = 10000000 !< Number of timesteps
integer, parameter :: dt = 3600 !< Timestep, sec
! начальная дата:
integer, parameter :: year0 = 1941 !< year
integer, parameter :: year0 = 1 !< year
integer, parameter :: month0 = 1 !< month
integer, parameter :: day0 = 1 !< day
integer, parameter :: hour0 = 0 !< hour
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment