Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
CarbonCycleConstruction
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Sumbel Shangareeva
CarbonCycleConstruction
Commits
3200361e
Commit
3200361e
authored
1 year ago
by
a_medvedev
Browse files
Options
Downloads
Patches
Plain Diff
! версия для долгого расчета
parent
7b612112
Branches
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
CCC.f90
+20
-5
20 additions, 5 deletions
CCC.f90
core.f90
+4
-1
4 additions, 1 deletion
core.f90
my_carbon_model.f90
+4
-4
4 additions, 4 deletions
my_carbon_model.f90
with
28 additions
and
10 deletions
CCC.f90
+
20
−
5
View file @
3200361e
...
...
@@ -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
)
=
1
5
.
+
2.
*
cos
(
2
*
w
*
(
h
-7
))
!< humidity
Rswd
(
i
,
j
)
=
max
(
0.
,
8
00.
*
cos
(
w
*
(
h
-12
)))
!< shortwave radiation
e
(
i
,
j
)
=
1
0
.
+
2.
*
cos
(
2
*
w
*
(
h
-7
))
!< humidity
Rswd
(
i
,
j
)
=
max
(
0.
,
6
00.
*
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
...
...
This diff is collapsed.
Click to expand it.
core.f90
+
4
−
1
View file @
3200361e
...
...
@@ -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
))
...
...
This diff is collapsed.
Click to expand it.
my_carbon_model.f90
+
4
−
4
View file @
3200361e
...
...
@@ -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
=
100
00000
!< Number of timesteps
integer
,
parameter
::
dt
=
3600
!< Timestep, sec
! начальная дата:
integer
,
parameter
::
year0
=
1
941
!< year
integer
,
parameter
::
year0
=
1
!< year
integer
,
parameter
::
month0
=
1
!< month
integer
,
parameter
::
day0
=
1
!< day
integer
,
parameter
::
hour0
=
0
!< hour
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment