Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
G
GOSI9esm
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Consortium Members
UKMO
GOSI
GOSI9esm
Commits
a044e9c2
Commit
a044e9c2
authored
2 years ago
by
Sibylle TECHENE
Browse files
Options
Downloads
Patches
Plain Diff
#2 RK3 time-stepping currently uses forcing read at n+1/2 during a time-step
parent
a00eb5d9
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/OCE/ISF/isfhdiv.F90
+5
-0
5 additions, 0 deletions
src/OCE/ISF/isfhdiv.F90
src/OCE/SBC/sbcrnf.F90
+15
-3
15 additions, 3 deletions
src/OCE/SBC/sbcrnf.F90
src/OCE/SBC/sbcssm.F90
+13
-1
13 additions, 1 deletion
src/OCE/SBC/sbcssm.F90
with
33 additions
and
4 deletions
src/OCE/ISF/isfhdiv.F90
+
5
−
0
View file @
a044e9c2
...
...
@@ -71,6 +71,7 @@ CONTAINS
!
END
SUBROUTINE
isf_hdiv
SUBROUTINE
isf_hdiv_mlt
(
ktop
,
kbot
,
phtbl
,
pfrac
,
pfwf
,
pfwf_b
,
phdiv
)
!!----------------------------------------------------------------------
!! *** SUBROUTINE sbc_isf_div ***
...
...
@@ -97,7 +98,11 @@ CONTAINS
!
! compute integrated divergence correction
DO_2D
(
nn_hls
-1
,
nn_hls
,
nn_hls
-1
,
nn_hls
)
#if defined key_RK3
zhdiv
(
ji
,
jj
)
=
pfwf
(
ji
,
jj
)
*
r1_rho0
/
phtbl
(
ji
,
jj
)
#else
zhdiv
(
ji
,
jj
)
=
0.5_wp
*
(
pfwf
(
ji
,
jj
)
+
pfwf_b
(
ji
,
jj
)
)
*
r1_rho0
/
phtbl
(
ji
,
jj
)
#endif
END_2D
!
! update divergence at each level affected by ice shelf top boundary layer
...
...
This diff is collapsed.
Click to expand it.
src/OCE/SBC/sbcrnf.F90
+
15
−
3
View file @
a044e9c2
...
...
@@ -212,7 +212,11 @@ CONTAINS
IF
(
ln_linssh
)
THEN
!* constant volume case : just apply the runoff input flow
DO_2D_OVR
(
nn_hls
-1
,
nn_hls
,
nn_hls
-1
,
nn_hls
)
DO
jk
=
1
,
nk_rnf
(
ji
,
jj
)
phdivn
(
ji
,
jj
,
jk
)
=
phdivn
(
ji
,
jj
,
jk
)
-
(
rnf
(
ji
,
jj
)
+
rnf_b
(
ji
,
jj
)
)
*
zfact
/
h_rnf
(
ji
,
jj
)
#if defined key_RK3
phdivn
(
ji
,
jj
,
jk
)
=
phdivn
(
ji
,
jj
,
jk
)
-
rnf
(
ji
,
jj
)
*
r1_rho0
/
h_rnf
(
ji
,
jj
)
! RK3: rnf forcing at n+1/2
#else
phdivn
(
ji
,
jj
,
jk
)
=
phdivn
(
ji
,
jj
,
jk
)
-
(
rnf
(
ji
,
jj
)
+
rnf_b
(
ji
,
jj
)
)
*
zfact
/
h_rnf
(
ji
,
jj
)
! MLF: rnf forcing at Kmm (n)
#endif
END
DO
END_2D
ELSE
!* variable volume case
...
...
@@ -224,7 +228,11 @@ CONTAINS
END_2D
DO_2D_OVR
(
nn_hls
-1
,
nn_hls
,
nn_hls
-1
,
nn_hls
)
! apply the runoff input flow
DO
jk
=
1
,
nk_rnf
(
ji
,
jj
)
phdivn
(
ji
,
jj
,
jk
)
=
phdivn
(
ji
,
jj
,
jk
)
-
(
rnf
(
ji
,
jj
)
+
rnf_b
(
ji
,
jj
)
)
*
zfact
/
h_rnf
(
ji
,
jj
)
#if defined key_RK3
phdivn
(
ji
,
jj
,
jk
)
=
phdivn
(
ji
,
jj
,
jk
)
-
rnf
(
ji
,
jj
)
*
r1_rho0
/
h_rnf
(
ji
,
jj
)
! RK3: rnf forcing at n+1/2
#else
phdivn
(
ji
,
jj
,
jk
)
=
phdivn
(
ji
,
jj
,
jk
)
-
(
rnf
(
ji
,
jj
)
+
rnf_b
(
ji
,
jj
)
)
*
zfact
/
h_rnf
(
ji
,
jj
)
! MLF: rnf forcing at Kmm (n)
#endif
END
DO
END_2D
ENDIF
...
...
@@ -233,7 +241,11 @@ CONTAINS
h_rnf
(
ji
,
jj
)
=
e3t
(
ji
,
jj
,
1
,
Kmm
)
! update h_rnf to be depth of top box
END_2D
DO_2D_OVR
(
nn_hls
-1
,
nn_hls
,
nn_hls
-1
,
nn_hls
)
phdivn
(
ji
,
jj
,
1
)
=
phdivn
(
ji
,
jj
,
1
)
-
(
rnf
(
ji
,
jj
)
+
rnf_b
(
ji
,
jj
)
)
*
zfact
/
e3t
(
ji
,
jj
,
1
,
Kmm
)
#if defined key_RK3
phdivn
(
ji
,
jj
,
1
)
=
phdivn
(
ji
,
jj
,
1
)
-
rnf
(
ji
,
jj
)
*
r1_rho0
/
e3t
(
ji
,
jj
,
1
,
Kmm
)
! RK3: rnf forcing at n+1/2
#else
phdivn
(
ji
,
jj
,
1
)
=
phdivn
(
ji
,
jj
,
1
)
-
(
rnf
(
ji
,
jj
)
+
rnf_b
(
ji
,
jj
)
)
*
zfact
/
e3t
(
ji
,
jj
,
1
,
Kmm
)
! MLF: rnf forcing at Kmm (n)
#endif
END_2D
ENDIF
!
...
...
This diff is collapsed.
Click to expand it.
src/OCE/SBC/sbcssm.F90
+
13
−
1
View file @
a044e9c2
...
...
@@ -79,7 +79,11 @@ CONTAINS
ENDIF
sss_m
(:,:)
=
zts
(:,:,
jp_sal
)
! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics)
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
ssh
(:,:,
Kmm
)
-
0.5
*
(
ssh_ib
(:,:)
+
ssh_ibb
(:,:)
)
#if defined key_RK3
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
ssh
(:,:,
Kmm
)
-
ssh_ib
(:,:)
! RK3: forcing at n+1/2
#else
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
ssh
(:,:,
Kmm
)
-
0.5
*
(
ssh_ib
(:,:)
+
ssh_ibb
(:,:)
)
! MLF: forcing at n (Kmm)
#endif
ELSE
;
ssh_m
(:,:)
=
ssh
(:,:,
Kmm
)
ENDIF
!
...
...
@@ -102,7 +106,11 @@ CONTAINS
ENDIF
sss_m
(:,:)
=
zcoef
*
zts
(:,:,
jp_sal
)
! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics)
#if defined key_RK3
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
zcoef
*
(
ssh
(:,:,
Kmm
)
-
ssh_ib
(:,:)
)
#else
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
zcoef
*
(
ssh
(:,:,
Kmm
)
-
0.5
*
(
ssh_ib
(:,:)
+
ssh_ibb
(:,:)
)
)
#endif
ELSE
;
ssh_m
(:,:)
=
zcoef
*
ssh
(:,:,
Kmm
)
ENDIF
!
...
...
@@ -130,7 +138,11 @@ CONTAINS
ENDIF
sss_m
(:,:)
=
sss_m
(:,:)
+
zts
(:,:,
jp_sal
)
! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics)
#if defined key_RK3
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
ssh_m
(:,:)
+
ssh
(:,:,
Kmm
)
-
ssh_ib
(:,:)
#else
IF
(
ln_apr_dyn
)
THEN
;
ssh_m
(:,:)
=
ssh_m
(:,:)
+
ssh
(:,:,
Kmm
)
-
0.5
*
(
ssh_ib
(:,:)
+
ssh_ibb
(:,:)
)
#endif
ELSE
;
ssh_m
(:,:)
=
ssh_m
(:,:)
+
ssh
(:,:,
Kmm
)
ENDIF
!
...
...
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