Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Méso-NH code
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
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Méso-NH
Méso-NH code
Commits
32d120c1
Commit
32d120c1
authored
2 years ago
by
RIETTE Sébastien
Browse files
Options
Downloads
Patches
Plain Diff
S. Riette 10/6/2022 mf_turb and mf_turb_expl
parent
95f1c28b
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/common/turb/mode_mf_turb.F90
+26
-23
26 additions, 23 deletions
src/common/turb/mode_mf_turb.F90
src/common/turb/mode_mf_turb_expl.F90
+26
-16
26 additions, 16 deletions
src/common/turb/mode_mf_turb_expl.F90
with
52 additions
and
39 deletions
src/common/turb/mode_mf_turb.F90
+
26
−
23
View file @
32d120c1
...
...
@@ -128,6 +128,7 @@ REAL, DIMENSION(D%NIT,D%NKT,KSV), INTENT(OUT):: PFLXZSVMF
REAL
,
DIMENSION
(
D
%
NIT
,
D
%
NKT
)
::
ZVARS
INTEGER
::
JSV
!number of scalar variables and Loop counter
INTEGER
::
JI
,
JK
REAL
(
KIND
=
JPRB
)
::
ZHOOK_HANDLE
!
!----------------------------------------------------------------------------
...
...
@@ -151,19 +152,22 @@ PSVDT = 0.
!
CALL
MZM_MF
(
D
,
PTHLM
(:,:),
PFLXZTHMF
(:,:))
PFLXZTHMF
(:,:)
=
PEMF
(:,:)
*
(
PTHL_UP
(:,:)
-
PFLXZTHMF
(:,:))
CALL
MZM_MF
(
D
,
PRTM
(:,:),
PFLXZRMF
(:,:))
PFLXZRMF
(:,:)
=
PEMF
(:,:)
*
(
PRT_UP
(:,:)
-
PFLXZRMF
(:,:))
CALL
MZM_MF
(
D
,
PTHVM
(:,:),
PFLXZTHVMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZTHMF
(:,:)
=
PEMF
(:,:)
*
(
PTHL_UP
(:,:)
-
PFLXZTHMF
(:,:))
PFLXZRMF
(:,:)
=
PEMF
(:,:)
*
(
PRT_UP
(:,:)
-
PFLXZRMF
(:,:))
PFLXZTHVMF
(:,:)
=
PEMF
(:,:)
*
(
PTHV_UP
(:,:)
-
PFLXZTHVMF
(:,:))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
IF
(
OMIXUV
)
THEN
CALL
MZM_MF
(
D
,
PUM
(:,:),
PFLXZUMF
(:,:))
PFLXZUMF
(:,:)
=
PEMF
(:,:)
*
(
PU_UP
(:,:)
-
PFLXZUMF
(:,:))
CALL
MZM_MF
(
D
,
PVM
(:,:),
PFLXZVMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZUMF
(:,:)
=
PEMF
(:,:)
*
(
PU_UP
(:,:)
-
PFLXZUMF
(:,:))
PFLXZVMF
(:,:)
=
PEMF
(:,:)
*
(
PV_UP
(:,:)
-
PFLXZVMF
(:,:))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ELSE
PFLXZUMF
(:,:)
=
0.
PFLXZVMF
(:,:)
=
0.
...
...
@@ -184,25 +188,24 @@ ENDIF
!
CALL
TRIDIAG_MASSFLUX
(
D
,
PTHLM
,
PFLXZTHMF
,
-
PEMF
,
PTSTEP
,
PIMPL
,
&
PDZZ
,
PRHODJ
,
ZVARS
)
! compute new flux
! compute new flux
and THL tendency
CALL
MZM_MF
(
D
,
ZVARS
(:,:),
PFLXZTHMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZTHMF
(:,:)
=
PEMF
(:,:)
*
(
PTHL_UP
(:,:)
-
PFLXZTHMF
(:,:))
!!! compute THL tendency
!
PTHLDT
(:,:)
=
(
ZVARS
(:,:)
-
PTHLM
(:,:))/
PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
! 3.2 Compute the tendency for the conservative mixing ratio
!
CALL
TRIDIAG_MASSFLUX
(
D
,
PRTM
(:,:),
PFLXZRMF
,
-
PEMF
,
PTSTEP
,
PIMPL
,
&
PDZZ
,
PRHODJ
,
ZVARS
)
! compute new flux
! compute new flux
and RT tendency
CALL
MZM_MF
(
D
,
ZVARS
(:,:),
PFLXZRMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZRMF
(:,:)
=
PEMF
(:,:)
*
(
PRT_UP
(:,:)
-
PFLXZRMF
(:,:))
!!! compute RT tendency
PRTDT
(:,:)
=
(
ZVARS
(:,:)
-
PRTM
(:,:))/
PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
IF
(
OMIXUV
)
THEN
...
...
@@ -213,13 +216,12 @@ IF (OMIXUV) THEN
CALL
TRIDIAG_MASSFLUX
(
D
,
PUM
,
PFLXZUMF
,
-
PEMF
,
PTSTEP
,
PIMPL
,
&
PDZZ
,
PRHODJ
,
ZVARS
)
! compute new flux
! compute new flux
and U tendency
CALL
MZM_MF
(
D
,
ZVARS
(:,:),
PFLXZUMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZUMF
(:,:)
=
PEMF
(:,:)
*
(
PU_UP
(:,:)
-
PFLXZUMF
(:,:))
! compute U tendency
PUDT
(:,:)
=
(
ZVARS
(:,:)
-
PUM
(:,:))/
PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
!
! 3.4 Compute the tendency for the (non conservative but treated as it for the time beiing)
...
...
@@ -228,12 +230,12 @@ IF (OMIXUV) THEN
!
CALL
TRIDIAG_MASSFLUX
(
D
,
PVM
,
PFLXZVMF
,
-
PEMF
,
PTSTEP
,
PIMPL
,
&
PDZZ
,
PRHODJ
,
ZVARS
)
! compute new flux
! compute new flux
and V tendency
CALL
MZM_MF
(
D
,
ZVARS
(:,:),
PFLXZVMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZVMF
(:,:)
=
PEMF
(:,:)
*
(
PV_UP
(:,:)
-
PFLXZVMF
(:,:))
! compute V tendency
PVDT
(:,:)
=
(
ZVARS
(:,:)
-
PVM
(:,:))/
PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ELSE
PUDT
(:,:)
=
0.
PVDT
(:,:)
=
0.
...
...
@@ -247,20 +249,21 @@ DO JSV=1,KSV
! ( Resulting fluxes are in flux level (w-point) as PEMF and PTHL_UP )
CALL
MZM_MF
(
D
,
PSVM
(:,:,
JSV
),
PFLXZSVMF
(:,:,
JSV
))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZSVMF
(:,:,
JSV
)
=
PEMF
(:,:)
*
(
PSV_UP
(:,:,
JSV
)
-
PFLXZSVMF
(:,:,
JSV
))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
!
! 3.5 Compute the tendency for scalar variables
! (PDZZ and flux in w-point and PRHODJ is mass point, result in mass point)
!
CALL
TRIDIAG_MASSFLUX
(
D
,
PSVM
(:,:,
JSV
),
PFLXZSVMF
(:,:,
JSV
),&
-
PEMF
,
PTSTEP
,
PIMPL
,
PDZZ
,
PRHODJ
,
ZVARS
)
! compute new flux
! compute new flux
and Sv tendency
CALL
MZM_MF
(
D
,
ZVARS
,
PFLXZSVMF
(:,:,
JSV
))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZSVMF
(:,:,
JSV
)
=
PEMF
(:,:)
*
(
PSV_UP
(:,:,
JSV
)
-
PFLXZSVMF
(:,:,
JSV
))
! compute Sv tendency
PSVDT
(:,:,
JSV
)
=
(
ZVARS
(:,:)
-
PSVM
(:,:,
JSV
))/
PTSTEP
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ENDDO
!
...
...
This diff is collapsed.
Click to expand it.
src/common/turb/mode_mf_turb_expl.F90
+
26
−
16
View file @
32d120c1
...
...
@@ -99,7 +99,7 @@ REAL, DIMENSION(D%NIT,D%NKT) :: ZFLXZTHSMF,ZTHS_UP,ZTHSM ! Theta S flux
REAL
,
DIMENSION
(
D
%
NIT
,
D
%
NKT
)
::
ZQT_UP
,
ZQTM
,
ZTHSDT
,
ZQTDT
REAL
,
DIMENSION
(
D
%
NIT
,
D
%
NKT
)
::
ZTHLM_F
,
ZRTM_F
INTEGER
::
JK
! loop counter
INTEGER
::
JK
,
JI
! loop counter
REAL
(
KIND
=
JPRB
)
::
ZHOOK_HANDLE
!----------------------------------------------------------------------------
...
...
@@ -130,25 +130,31 @@ PVDT = 0.
CALL
MZM_MF
(
D
,
PRTM
(:,:),
ZRTM_F
(:,:))
CALL
MZM_MF
(
D
,
PTHLM
(:,:),
ZTHLM_F
(:,:))
ZQTM
(:,:)
=
ZRTM_F
(:,:)/(
1.
+
ZRTM_F
(:,:))
ZQT_UP
(:,:)
=
PRT_UP
(:,:)/(
1.
+
PRT_UP
(:,:))
ZTHS_UP
(:,:)
=
PTHL_UP
(:,:)
*
(
1.
+
PARAMMF
%
XLAMBDA_MF
*
ZQT_UP
(:,:))
ZTHSM
(:,:)
=
ZTHLM_F
(:,:)
*
(
1.
+
PARAMMF
%
XLAMBDA_MF
*
ZQTM
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ZQTM
(:,:)
=
ZRTM_F
(:,:)/(
1.
+
ZRTM_F
(:,:))
ZQT_UP
(:,:)
=
PRT_UP
(:,:)/(
1.
+
PRT_UP
(:,:))
ZTHS_UP
(:,:)
=
PTHL_UP
(:,:)
*
(
1.
+
PARAMMF
%
XLAMBDA_MF
*
ZQT_UP
(:,:))
ZTHSM
(:,:)
=
ZTHLM_F
(:,:)
*
(
1.
+
PARAMMF
%
XLAMBDA_MF
*
ZQTM
(:,:))
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
CALL
MZM_MF
(
D
,
PTHLM
(:,:),
PFLXZTHLMF
(:,:))
PFLXZTHLMF
(:,:)
=
PEMF
(:,:)
*
(
PTHL_UP
(:,:)
-
PFLXZTHLMF
(:,:))
! ThetaL
CALL
MZM_MF
(
D
,
PRTM
(:,:),
PFLXZRMF
(:,:))
PFLXZRMF
(:,:)
=
PEMF
(:,:)
*
(
PRT_UP
(:,:)
-
PFLXZRMF
(:,:))
! Rt
CALL
MZM_MF
(
D
,
PRTM
(:,:),
PFLXZRMF
(:,:))
CALL
MZM_MF
(
D
,
PTHVM
(:,:),
PFLXZTHVMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZTHLMF
(:,:)
=
PEMF
(:,:)
*
(
PTHL_UP
(:,:)
-
PFLXZTHLMF
(:,:))
! ThetaL
PFLXZRMF
(:,:)
=
PEMF
(:,:)
*
(
PRT_UP
(:,:)
-
PFLXZRMF
(:,:))
! Rt
PFLXZTHVMF
(:,:)
=
PEMF
(:,:)
*
(
PTHV_UP
(:,:)
-
PFLXZTHVMF
(:,:))
! ThetaV
ZFLXZTHSMF
(:,:)
=
PEMF
(:,:)
*
(
ZTHS_UP
(:,:)
-
ZTHSM
(:,:))
! Theta S flux
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
IF
(
OMIXUV
)
THEN
CALL
MZM_MF
(
D
,
PUM
(:,:),
PFLXZUMF
(:,:))
PFLXZUMF
(:,:)
=
PEMF
(:,:)
*
(
PU_UP
(:,:)
-
PFLXZUMF
(:,:))
! U
CALL
MZM_MF
(
D
,
PVM
(:,:),
PFLXZVMF
(:,:))
!$mnh_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
PFLXZUMF
(:,:)
=
PEMF
(:,:)
*
(
PU_UP
(:,:)
-
PFLXZUMF
(:,:))
! U
PFLXZVMF
(:,:)
=
PEMF
(:,:)
*
(
PV_UP
(:,:)
-
PFLXZVMF
(:,:))
! V
!$mnh_end_expand_array(JI=D%NIB:D%NIE,JK=D%NKTB:D%NKTE)
ELSE
PFLXZUMF
(:,:)
=
0.
PFLXZVMF
(:,:)
=
0.
...
...
@@ -162,17 +168,21 @@ ENDIF
! --------------------------------------------
DO
JK
=
D
%
NKB
,
D
%
NKE
-
D
%
NKL
,
D
%
NKL
! PTHLDT(:,JK) = (PFLXZTHLMF(:,JK ) - PFLXZTHLMF(:,JK+D%NKL)) / PRHODJ(:,JK)
PRTDT
(:,
JK
)
=
(
PFLXZRMF
(:,
JK
)
-
PFLXZRMF
(:,
JK
+
D
%
NKL
))
/
PRHODJ
(:,
JK
)
ZQTDT
(:,
JK
)
=
PRTDT
(:,
JK
)/(
1.
+
ZRTM_F
(:,
JK
)
*
ZRTM_F
(:,
JK
))
ZTHSDT
(:,
JK
)
=
(
ZFLXZTHSMF
(:,
JK
)
-
ZFLXZTHSMF
(:,
JK
+
D
%
NKL
))
/
PRHODJ
(:,
JK
)
PTHLDT
(:,
JK
)
=
ZTHSDT
(:,
JK
)/(
1.
+
PARAMMF
%
XLAMBDA_MF
*
ZQTM
(:,
JK
))
-
ZTHLM_F
(:,
JK
)
*
PARAMMF
%
XLAMBDA_MF
*
ZQTDT
(:,
JK
)
DO
JI
=
D
%
NIB
,
D
%
NIE
!PTHLDT(JI,JK) = (PFLXZTHLMF(JI,JK ) - PFLXZTHLMF(JI,JK+D%NKL)) / PRHODJ(JI,JK)
PRTDT
(
JI
,
JK
)
=
(
PFLXZRMF
(
JI
,
JK
)
-
PFLXZRMF
(
JI
,
JK
+
D
%
NKL
))
/
PRHODJ
(
JI
,
JK
)
ZQTDT
(
JI
,
JK
)
=
PRTDT
(
JI
,
JK
)/(
1.
+
ZRTM_F
(
JI
,
JK
)
*
ZRTM_F
(
JI
,
JK
))
ZTHSDT
(
JI
,
JK
)
=
(
ZFLXZTHSMF
(
JI
,
JK
)
-
ZFLXZTHSMF
(
JI
,
JK
+
D
%
NKL
))
/
PRHODJ
(
JI
,
JK
)
PTHLDT
(
JI
,
JK
)
=
ZTHSDT
(
JI
,
JK
)/(
1.
+
PARAMMF
%
XLAMBDA_MF
*
ZQTM
(
JI
,
JK
))
-
ZTHLM_F
(
JI
,
JK
)
*
PARAMMF
%
XLAMBDA_MF
*
ZQTDT
(
JI
,
JK
)
ENDDO
END
DO
IF
(
OMIXUV
)
THEN
DO
JK
=
D
%
NKB
,
D
%
NKE
-
D
%
NKL
,
D
%
NKL
PUDT
(:,
JK
)
=
(
PFLXZUMF
(:,
JK
)
-
PFLXZUMF
(:,
JK
+
D
%
NKL
))
/
PRHODJ
(:,
JK
)
PVDT
(:,
JK
)
=
(
PFLXZVMF
(:,
JK
)
-
PFLXZVMF
(:,
JK
+
D
%
NKL
))
/
PRHODJ
(:,
JK
)
DO
JI
=
D
%
NIB
,
D
%
NIE
PUDT
(
JI
,
JK
)
=
(
PFLXZUMF
(
JI
,
JK
)
-
PFLXZUMF
(
JI
,
JK
+
D
%
NKL
))
/
PRHODJ
(
JI
,
JK
)
PVDT
(
JI
,
JK
)
=
(
PFLXZVMF
(
JI
,
JK
)
-
PFLXZVMF
(
JI
,
JK
+
D
%
NKL
))
/
PRHODJ
(
JI
,
JK
)
ENDDO
END
DO
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