Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Gyacomo
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
Antoine Cyril David Hoffmann
Gyacomo
Commits
e0c629f8
Commit
e0c629f8
authored
4 years ago
by
Antoine Cyril David Hoffmann
Browse files
Options
Downloads
Patches
Plain Diff
Debugging 1D linear simulations
parent
a2d76ab7
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/auxval.F90
+9
-4
9 additions, 4 deletions
src/auxval.F90
src/grid_mod.F90
+87
-67
87 additions, 67 deletions
src/grid_mod.F90
src/stepon.F90
+1
-1
1 addition, 1 deletion
src/stepon.F90
with
97 additions
and
72 deletions
src/auxval.F90
+
9
−
4
View file @
e0c629f8
...
...
@@ -4,6 +4,7 @@ subroutine auxval
USE
basic
USE
grid
USE
array
USE
model
USE
fourier
,
ONLY
:
init_grid_distr_and_plans
,
alloc_local_1
,
alloc_local_2
use
prec_const
IMPLICIT
NONE
...
...
@@ -11,14 +12,18 @@ subroutine auxval
INTEGER
::
irows
,
irowe
,
irow
,
icol
,
i_
IF
(
my_id
.EQ.
0
)
WRITE
(
*
,
*
)
'=== Set auxiliary values ==='
CALL
init_grid_distr_and_plans
(
Nr
,
Nz
)
IF
(
NON_LIN
)
THEN
CALL
init_grid_distr_and_plans
(
Nr
,
Nz
)
ELSE
CALL
init_1Dgrid_distr
ENDIF
CALL
set_krgrid
! MPI Distributed dimension
CALL
set_pgrid
CALL
set_jgrid
CALL
set_krgrid
! MPI Distributed dimension
CALL
set_kzgrid
CALL
set_pj
CALL
memory
! Allocate memory for global arrays
DO
i_
=
0
,
num_procs
-1
...
...
This diff is collapsed.
Click to expand it.
src/grid_mod.F90
+
87
−
67
View file @
e0c629f8
...
...
@@ -55,16 +55,28 @@ MODULE grid
INTEGER
,
PUBLIC
,
PROTECTED
::
ips_i
,
ipe_i
,
ijs_i
,
ije_i
! Public Functions
PUBLIC
::
set_pj
PUBLIC
::
init_1Dgrid_distr
PUBLIC
::
set_pgrid
,
set_jgrid
PUBLIC
::
set_krgrid
,
set_kzgrid
PUBLIC
::
grid_readinputs
,
grid_outputinputs
PUBLIC
::
bare
,
bari
CONTAINS
SUBROUTINE
set_pj
SUBROUTINE
init_1Dgrid_distr
write
(
*
,
*
)
Nr
local_nkr
=
(
Nr
/
2+1
)/
num_procs
write
(
*
,
*
)
local_nkr
local_nkr_offset
=
my_id
*
local_nkr
if
(
my_id
.EQ.
num_procs
-1
)
local_nkr
=
(
Nr
/
2+1
)
-
local_nkr_offset
END
SUBROUTINE
init_1Dgrid_distr
SUBROUTINE
set_pgrid
USE
prec_const
IMPLICIT
NONE
INTEGER
::
ip
,
ij
INTEGER
::
ip
ips_e
=
1
;
ipe_e
=
pmaxe
/(
1
+
pskip
)
+
1
ips_i
=
1
;
ipe_i
=
pmaxi
/(
1
+
pskip
)
+
1
...
...
@@ -73,6 +85,13 @@ CONTAINS
DO
ip
=
ips_e
,
ipe_e
;
parray_e
(
ip
)
=
(
ip
-1
);
END
DO
DO
ip
=
ips_i
,
ipe_i
;
parray_i
(
ip
)
=
(
ip
-1
);
END
DO
END
SUBROUTINE
set_pgrid
SUBROUTINE
set_jgrid
USE
prec_const
IMPLICIT
NONE
INTEGER
::
ij
ijs_e
=
1
;
ije_e
=
jmaxe
+
1
ijs_i
=
1
;
ije_i
=
jmaxi
+
1
ALLOCATE
(
jarray_e
(
ijs_e
:
ije_e
))
...
...
@@ -81,80 +100,81 @@ CONTAINS
DO
ij
=
ijs_i
,
ije_i
;
jarray_i
(
ij
)
=
ij
-1
;
END
DO
maxj
=
MAX
(
jmaxi
,
jmaxe
)
END
SUBROUTINE
set_pj
END
SUBROUTINE
set_jgrid
SUBROUTINE
set_krgrid
USE
prec_const
IMPLICIT
NONE
INTEGER
::
i_
Nkr
=
Nr
/
2+1
! Defined only on positive kr since fields are real
! Start and END indices of grid
ikrs
=
local_nkr_offset
+
1
ikre
=
ikrs
+
local_nkr
-
1
! Grid spacings
IF
(
Lr
.EQ.
0
)
THEN
deltakr
=
1._dp
SUBROUTINE
set_krgrid
USE
prec_const
IMPLICIT
NONE
INTEGER
::
i_
Nkr
=
Nr
/
2+1
! Defined only on positive kr since fields are real
! Start and END indices of grid
ikrs
=
local_nkr_offset
+
1
ikre
=
ikrs
+
local_nkr
-
1
ALLOCATE
(
krarray
(
ikrs
:
ikre
))
! Grid spacings
IF
(
Lr
.EQ.
0
)
THEN
deltakr
=
1._dp
ELSE
deltakr
=
2._dp
*
PI
/
Lr
ENDIF
! Discretized kr positions ordered as dk*(0 1 2 3)
DO
ikr
=
ikrs
,
ikre
krarray
(
ikr
)
=
REAL
(
ikr
-1
,
dp
)
*
deltakr
IF
(
krarray
(
ikr
)
.EQ.
0
)
ikr_0
=
ikr
END
DO
! Orszag 2/3 filter
two_third_krmax
=
2._dp
/
3._dp
*
deltakr
*
Nkr
ALLOCATE
(
AA_r
(
ikrs
:
ikre
))
DO
ikr
=
ikrs
,
ikre
IF
(
(
krarray
(
ikr
)
.LT.
two_third_krmax
)
)
THEN
AA_r
(
ikr
)
=
1._dp
;
ELSE
delta
kr
=
2
._dp
*
PI
/
Lr
AA_r
(
i
kr
)
=
0
._dp
;
ENDIF
END
DO
END
SUBROUTINE
set_krgrid
! Discretized kr positions ordered as dk*(0 1 2 3)
ALLOCATE
(
krarray
(
ikrs
:
ikre
))
DO
ikr
=
ikrs
,
ikre
krarray
(
ikr
)
=
REAL
(
ikr
-1
,
dp
)
*
deltakr
IF
(
krarray
(
ikr
)
.EQ.
0
)
ikr_0
=
ikr
END
DO
! Orszag 2/3 filter
two_third_krmax
=
2._dp
/
3._dp
*
deltakr
*
Nkr
ALLOCATE
(
AA_r
(
ikrs
:
ikre
))
DO
ikr
=
ikrs
,
ikre
IF
(
(
krarray
(
ikr
)
.LT.
two_third_krmax
)
)
THEN
AA_r
(
ikr
)
=
1._dp
;
ELSE
AA_r
(
ikr
)
=
0._dp
;
ENDIF
END
DO
END
SUBROUTINE
set_krgrid
SUBROUTINE
set_kzgrid
USE
prec_const
IMPLICIT
NONE
INTEGER
::
i_
Nkz
=
Nz
;
! Start and END indices of grid
ikzs
=
1
ikze
=
Nkz
! Grid spacings
IF
(
Lz
.EQ.
0
)
THEN
deltakz
=
1._dp
ELSE
deltakz
=
2._dp
*
PI
/
Lz
ENDIF
! Discretized kz positions ordered as dk*(0 1 2 3 -2 -1)
ALLOCATE
(
kzarray
(
ikzs
:
ikze
))
SUBROUTINE
set_kzgrid
USE
prec_const
IMPLICIT
NONE
INTEGER
::
i_
Nkz
=
Nz
;
! Start and END indices of grid
ikzs
=
1
ikze
=
Nkz
ALLOCATE
(
kzarray
(
ikzs
:
ikze
))
! Grid spacings and discretized kz positions ordered as dk*(0 1 2 3 -2 -1)
IF
(
Lz
.EQ.
0
)
THEN
! 1D linear case
deltakz
=
1._dp
kzarray
(
1
)
=
0
ikz_0
=
1
ELSE
deltakz
=
2._dp
*
PI
/
Lz
DO
ikz
=
ikzs
,
ikze
kzarray
(
ikz
)
=
deltakz
*
(
MODULO
(
ikz
-1
,
Nkz
/
2
)
-
Nkz
/
2
*
FLOOR
(
2.
*
real
(
ikz
-1
)/
real
(
Nkz
)))
if
(
ikz
.EQ.
Nz
/
2+1
)
kzarray
(
ikz
)
=
-
kzarray
(
ikz
)
IF
(
kzarray
(
ikz
)
.EQ.
0
)
ikz_0
=
ikz
END
DO
! Orszag 2/3 filter
two_third_kzmax
=
2._dp
/
3._dp
*
deltakz
*
(
Nkz
/
2
);
ALLOCATE
(
AA_z
(
ikzs
:
ikze
))
DO
ikz
=
ikzs
,
ikze
IF
(
(
kzarray
(
ikz
)
.GT.
-
two_third_kzmax
)
.AND.
(
kzarray
(
ikz
)
.LT.
two_third_kzmax
)
)
THEN
AA_z
(
ikz
)
=
1._dp
;
ELSE
AA_z
(
ikz
)
=
0._dp
;
ENDIF
END
DO
END
SUBROUTINE
set_kzgrid
ENDIF
! Orszag 2/3 filter
two_third_kzmax
=
2._dp
/
3._dp
*
deltakz
*
(
Nkz
/
2
);
ALLOCATE
(
AA_z
(
ikzs
:
ikze
))
DO
ikz
=
ikzs
,
ikze
IF
(
(
kzarray
(
ikz
)
.GT.
-
two_third_kzmax
)
.AND.
(
kzarray
(
ikz
)
.LT.
two_third_kzmax
)
)
THEN
AA_z
(
ikz
)
=
1._dp
;
ELSE
AA_z
(
ikz
)
=
0._dp
;
ENDIF
END
DO
END
SUBROUTINE
set_kzgrid
SUBROUTINE
grid_readinputs
! Read the input parameters
...
...
This diff is collapsed.
Click to expand it.
src/stepon.F90
+
1
−
1
View file @
e0c629f8
...
...
@@ -61,7 +61,7 @@ SUBROUTINE stepon
! Execution time start
CALL
cpu_time
(
t0_checkfield
)
IF
(
ikrs
.EQ.
1
)
CALL
enforce_symetry
()
! Enforcing symmetry on kr = 0
IF
(
(
ikrs
.EQ.
1
)
.AND.
(
NON_LIN
)
)
CALL
enforce_symetry
()
! Enforcing symmetry on kr = 0
mlend
=
.FALSE.
IF
(
.NOT.
nlend
)
THEN
...
...
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