From a975eb2503bdb51333a26ef93ffb6ace984a26f1 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Thu, 27 Jan 2022 14:19:10 +0100 Subject: [PATCH] Quentin 27/01/2022: move KKA,KKU,KKL args in gradient_ at the beggining (or optional) as in MesoNH --- src/arome/aux/gradient_m.F90 | 18 +++++++-------- src/arome/aux/gradient_u.F90 | 12 +++++----- src/arome/aux/gradient_v.F90 | 12 +++++----- src/arome/aux/gradient_w.F90 | 12 +++++----- src/arome/aux/modi_gradient_m.F90 | 18 +++++++-------- src/arome/aux/modi_gradient_u.F90 | 12 +++++----- src/arome/aux/modi_gradient_v.F90 | 12 +++++----- src/arome/aux/modi_gradient_w.F90 | 12 +++++----- src/common/turb/mode_prandtl.F90 | 8 +++---- src/common/turb/mode_turb_ver.F90 | 4 ++-- src/common/turb/mode_turb_ver_dyn_flux.F90 | 4 ++-- src/common/turb/mode_turb_ver_sv_corr.F90 | 10 ++++---- src/common/turb/mode_turb_ver_sv_flux.F90 | 2 +- src/common/turb/turb.F90 | 27 +++++++++++----------- src/mesonh/turb/turb.f90 | 4 ++-- 15 files changed, 84 insertions(+), 83 deletions(-) diff --git a/src/arome/aux/gradient_m.F90 b/src/arome/aux/gradient_m.F90 index f9427caa2..1bd975642 100644 --- a/src/arome/aux/gradient_m.F90 +++ b/src/arome/aux/gradient_m.F90 @@ -70,8 +70,8 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the mass point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZX ! metric coefficient dzx -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise ! REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGX_M_M ! result mass point @@ -101,7 +101,7 @@ END IF IF (LHOOK) CALL DR_HOOK('GX_M_M',1,ZHOOK_HANDLE) END FUNCTION GX_M_M ! ######spl - FUNCTION GX_M_U(PY,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGX_M_U) + FUNCTION GX_M_U(KKA, KKU, KL,PY,PDXX,PDZZ,PDZX) RESULT(PGX_M_U) USE PARKIND1, ONLY : JPRB USE YOMHOOK , ONLY : LHOOK, DR_HOOK ! ################################################## @@ -329,8 +329,8 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the mass point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dyy REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZY ! metric coefficient dzy -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise ! REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGY_M_M ! result mass point ! @@ -359,7 +359,7 @@ ENDIF IF (LHOOK) CALL DR_HOOK('GY_M_M',1,ZHOOK_HANDLE) END FUNCTION GY_M_M ! ######spl - FUNCTION GY_M_V(PY,PDYY,PDZZ,PDZY, KKA, KKU, KL) RESULT(PGY_M_V) + FUNCTION GY_M_V(KKA,KKU,KL,PY,PDYY,PDZZ,PDZY) RESULT(PGY_M_V) USE PARKIND1, ONLY : JPRB USE YOMHOOK , ONLY : LHOOK, DR_HOOK ! ################################################## @@ -551,8 +551,8 @@ IMPLICIT NONE ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the mass point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise ! REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_M_M ! result mass point ! @@ -575,7 +575,7 @@ PGZ_M_M(:,:,:)= MZF(DZM(PA(:,:,:), KKA, KKU, KL)/PDZZ(:,:,:), KKA, KKU, KL) IF (LHOOK) CALL DR_HOOK('GZ_M_M',1,ZHOOK_HANDLE) END FUNCTION GZ_M_M ! ######spl - FUNCTION GZ_M_W(PY,PDZZ, KKA, KKU, KL) RESULT(PGZ_M_W) + FUNCTION GZ_M_W(KKA, KKU, KL,PY,PDZZ) RESULT(PGZ_M_W) USE PARKIND1, ONLY : JPRB USE YOMHOOK , ONLY : LHOOK, DR_HOOK ! ######################################### diff --git a/src/arome/aux/gradient_u.F90 b/src/arome/aux/gradient_u.F90 index 96c0af25b..317019d20 100644 --- a/src/arome/aux/gradient_u.F90 +++ b/src/arome/aux/gradient_u.F90 @@ -66,8 +66,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the U point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -168,8 +168,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the U point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dyy REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -261,8 +261,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the U point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! diff --git a/src/arome/aux/gradient_v.F90 b/src/arome/aux/gradient_v.F90 index 3dd2f2377..53e81c083 100644 --- a/src/arome/aux/gradient_v.F90 +++ b/src/arome/aux/gradient_v.F90 @@ -66,8 +66,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the V point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -165,8 +165,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the V point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dyy REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -260,8 +260,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the V point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! diff --git a/src/arome/aux/gradient_w.F90 b/src/arome/aux/gradient_w.F90 index b17ca4bab..66216739e 100644 --- a/src/arome/aux/gradient_w.F90 +++ b/src/arome/aux/gradient_w.F90 @@ -56,8 +56,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the W point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -147,8 +147,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the W point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -236,8 +236,8 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments and result ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the W point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! diff --git a/src/arome/aux/modi_gradient_m.F90 b/src/arome/aux/modi_gradient_m.F90 index 82f5e3c89..ed35df93a 100644 --- a/src/arome/aux/modi_gradient_m.F90 +++ b/src/arome/aux/modi_gradient_m.F90 @@ -6,8 +6,8 @@ INTERFACE ! ! FUNCTION GX_M_M(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGX_M_M) -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the mass point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -19,8 +19,8 @@ END FUNCTION GX_M_M ! ! FUNCTION GY_M_M(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL) RESULT(PGY_M_M) -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the mass point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dyy REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -33,8 +33,8 @@ END FUNCTION GY_M_M ! FUNCTION GZ_M_M(PA,PDZZ, KKA, KKU, KL) RESULT(PGZ_M_M) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the mass point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! @@ -42,7 +42,7 @@ REAL, DIMENSION(SIZE(PA,1),SIZE(PA,2),SIZE(PA,3)) :: PGZ_M_M ! result mass point ! END FUNCTION GZ_M_M ! - FUNCTION GX_M_U(PY,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGX_M_U) + FUNCTION GX_M_U(KKA, KKU, KL,PY,PDXX,PDZZ,PDZX) RESULT(PGX_M_U) ! IMPLICIT NONE ! @@ -59,7 +59,7 @@ REAL, DIMENSION(SIZE(PY,1),SIZE(PY,2),SIZE(PY,3)) :: PGX_M_U ! result at flux END FUNCTION GX_M_U ! ! - FUNCTION GY_M_V(PY,PDYY,PDZZ,PDZY, KKA, KKU, KL) RESULT(PGY_M_V) + FUNCTION GY_M_V(KKA, KKU, KL,PY,PDYY,PDZZ,PDZY) RESULT(PGY_M_V) ! IMPLICIT NONE ! @@ -75,7 +75,7 @@ REAL, DIMENSION(SIZE(PY,1),SIZE(PY,2),SIZE(PY,3)) :: PGY_M_V ! result at flux ! side END FUNCTION GY_M_V ! - FUNCTION GZ_M_W(PY,PDZZ, KKA, KKU, KL) RESULT(PGZ_M_W) + FUNCTION GZ_M_W(KKA, KKU, KL,PY,PDZZ) RESULT(PGZ_M_W) ! IMPLICIT NONE ! diff --git a/src/arome/aux/modi_gradient_u.F90 b/src/arome/aux/modi_gradient_u.F90 index 634310304..519e5cc81 100644 --- a/src/arome/aux/modi_gradient_u.F90 +++ b/src/arome/aux/modi_gradient_u.F90 @@ -6,8 +6,8 @@ INTERFACE ! ! FUNCTION GX_U_M(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGX_U_M) -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the U point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -20,8 +20,8 @@ END FUNCTION GX_U_M ! FUNCTION GY_U_UV(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL) RESULT(PGY_U_UV) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the U point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dyy REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -34,8 +34,8 @@ END FUNCTION GY_U_UV ! FUNCTION GZ_U_UW(PA,PDZZ, KKA, KKU, KL) RESULT(PGZ_U_UW) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the U point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! diff --git a/src/arome/aux/modi_gradient_v.F90 b/src/arome/aux/modi_gradient_v.F90 index eec4d2fe9..d1ff4a08d 100644 --- a/src/arome/aux/modi_gradient_v.F90 +++ b/src/arome/aux/modi_gradient_v.F90 @@ -7,8 +7,8 @@ INTERFACE ! FUNCTION GY_V_M(PA,PDYY,PDZZ,PDZY, KKA, KKU, KL) RESULT(PGY_V_M) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the V point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDYY ! metric coefficient dyy REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -20,8 +20,8 @@ END FUNCTION GY_V_M ! FUNCTION GX_V_UV(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGX_V_UV) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the V point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -34,8 +34,8 @@ END FUNCTION GX_V_UV ! FUNCTION GZ_V_VW(PA,PDZZ, KKA, KKU, KL) RESULT(PGZ_V_VW) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the V point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! diff --git a/src/arome/aux/modi_gradient_w.F90 b/src/arome/aux/modi_gradient_w.F90 index 759319e3d..48d924d53 100644 --- a/src/arome/aux/modi_gradient_w.F90 +++ b/src/arome/aux/modi_gradient_w.F90 @@ -7,8 +7,8 @@ INTERFACE ! FUNCTION GZ_W_M(PA,PDZZ, KKA, KKU, KL) RESULT(PGZ_W_M) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the W point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz ! @@ -18,8 +18,8 @@ END FUNCTION GZ_W_M ! FUNCTION GX_W_UW(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGX_W_UW) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the W point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz @@ -32,8 +32,8 @@ END FUNCTION GX_W_UW ! FUNCTION GY_W_VW(PA,PDXX,PDZZ,PDZX, KKA, KKU, KL) RESULT(PGY_W_VW) ! -INTEGER, INTENT(IN) :: KKA, KKU ! near ground and uppest atmosphere array indexes -INTEGER, INTENT(IN) :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise +INTEGER, INTENT(IN),OPTIONAL :: KKA, KKU ! near ground and uppest atmosphere array indexes +INTEGER, INTENT(IN),OPTIONAL :: KL ! +1 if grid goes from ground to atmosphere top, -1 otherwise REAL, DIMENSION(:,:,:), INTENT(IN) :: PA ! variable at the W point REAL, DIMENSION(:,:,:), INTENT(IN) :: PDXX ! metric coefficient dxx REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZZ ! metric coefficient dzz diff --git a/src/common/turb/mode_prandtl.F90 b/src/common/turb/mode_prandtl.F90 index 9cce0c874..41c5a4845 100644 --- a/src/common/turb/mode_prandtl.F90 +++ b/src/common/turb/mode_prandtl.F90 @@ -264,11 +264,11 @@ IF (.NOT. LHARAT) THEN PBLL_O_E(:,:,:) = MZM(XG / PTHVREF(:,:,:) * PLM(:,:,:) * PLEPS(:,:,:) / PTKEM(:,:,:), KKA, KKU, KKL) IF (KRR /= 0) THEN ! moist case PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * PETHETA(:,:,:) * & - & GZ_M_W(PTHLM,PDZZ, KKA, KKU, KKL) + & GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ) PREDR1(:,:,:) = XCTV*PBLL_O_E(:,:,:) * PEMOIST(:,:,:) * & - & GZ_M_W(PRM(:,:,:,1),PDZZ, KKA, KKU, KKL) + & GZ_M_W(KKA, KKU, KKL,PRM(:,:,:,1),PDZZ) ELSE ! dry case - PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * GZ_M_W(PTHLM,PDZZ, KKA, KKU, KKL) + PREDTH1(:,:,:)= XCTV*PBLL_O_E(:,:,:) * GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ) PREDR1(:,:,:) = 0. END IF ! @@ -319,7 +319,7 @@ END IF ! ! For the scalar variables DO JSV=1,ISV - PREDS1(:,:,:,JSV)=XCTV*PBLL_O_E(:,:,:)*GZ_M_W(PSVM(:,:,:,JSV),PDZZ, KKA, KKU, KKL) + PREDS1(:,:,:,JSV)=XCTV*PBLL_O_E(:,:,:)*GZ_M_W(KKA, KKU, KKL,PSVM(:,:,:,JSV),PDZZ) END DO ! DO JSV=1,ISV diff --git a/src/common/turb/mode_turb_ver.F90 b/src/common/turb/mode_turb_ver.F90 index 2860adfd3..f58596abb 100644 --- a/src/common/turb/mode_turb_ver.F90 +++ b/src/common/turb/mode_turb_ver.F90 @@ -444,9 +444,9 @@ ZSQRT_TKE = SQRT(PTKEM) ! ! gradients of mean quantities at previous time-step ! -ZDTH_DZ = GZ_M_W(PTHLM(:,:,:),PDZZ, KKA, KKU, KKL) +ZDTH_DZ = GZ_M_W(KKA, KKU, KKL,PTHLM(:,:,:),PDZZ) ZDR_DZ = 0. -IF (KRR>0) ZDR_DZ = GZ_M_W(PRM(:,:,:,1),PDZZ, KKA, KKU, KKL) +IF (KRR>0) ZDR_DZ = GZ_M_W(KKA, KKU, KKL,PRM(:,:,:,1),PDZZ) ! ! ! Denominator factor in 3rd order terms diff --git a/src/common/turb/mode_turb_ver_dyn_flux.F90 b/src/common/turb/mode_turb_ver_dyn_flux.F90 index 26d1ba913..4e01503a6 100644 --- a/src/common/turb/mode_turb_ver_dyn_flux.F90 +++ b/src/common/turb/mode_turb_ver_dyn_flux.F90 @@ -587,7 +587,7 @@ END IF CALL SECOND_MNH(ZTIME1) CALL LES_MEAN_SUBGRID(MZF(MXF(GX_W_UW(PWM,PDXX,& PDZZ,PDZX, KKA, KKU, KKL)*ZFLXZ), KKA, KKU, KKL), X_LES_RES_ddxa_W_SBG_UaW ) - CALL LES_MEAN_SUBGRID(MXF(GX_M_U(PTHLM,PDXX,PDZZ,PDZX, KKA, KKU, KKL)& + CALL LES_MEAN_SUBGRID(MXF(GX_M_U(KKA, KKU, KKL,PTHLM,PDXX,PDZZ,PDZX)& * MZF(ZFLXZ, KKA, KKU, KKL)), X_LES_RES_ddxa_Thl_SBG_UaW ) IF (KRR>=1) THEN CALL LES_MEAN_SUBGRID(MXF(GX_U_M(PRM(:,:,:,1),PDXX,PDZZ,PDZX, KKA, KKU, KKL)& @@ -818,7 +818,7 @@ IF(HTURBDIM=='3DIM') THEN CALL LES_MEAN_SUBGRID(MZF(MYF(GY_W_VW(PWM,PDYY,& &PDZZ,PDZY, KKA, KKU, KKL)*ZFLXZ), KKA, KKU, KKL), & &X_LES_RES_ddxa_W_SBG_UaW , .TRUE. ) - CALL LES_MEAN_SUBGRID(MYF(GY_M_V(PTHLM,PDYY,PDZZ,PDZY, KKA, KKU, KKL)*& + CALL LES_MEAN_SUBGRID(MYF(GY_M_V(KKA, KKU, KKL,PTHLM,PDYY,PDZZ,PDZY)*& &MZF(ZFLXZ, KKA, KKU, KKL)), & &X_LES_RES_ddxa_Thl_SBG_UaW , .TRUE. ) IF (KRR>=1) THEN diff --git a/src/common/turb/mode_turb_ver_sv_corr.F90 b/src/common/turb/mode_turb_ver_sv_corr.F90 index 97928bf69..4deb47ce7 100644 --- a/src/common/turb/mode_turb_ver_sv_corr.F90 +++ b/src/common/turb/mode_turb_ver_sv_corr.F90 @@ -145,7 +145,7 @@ DO JSV=1,NSV ! IF (LLES_CALL) THEN ! approximation: diagnosed explicitely (without implicit term) - ZFLXZ(:,:,:) = PPSI_SV(:,:,:,JSV)*GZ_M_W(PSVM(:,:,:,JSV),PDZZ, KKA, KKU, KKL)**2 + ZFLXZ(:,:,:) = PPSI_SV(:,:,:,JSV)*GZ_M_W(KKA, KKU, KKL,PSVM(:,:,:,JSV),PDZZ)**2 ZFLXZ(:,:,:) = ZCSV / ZCSVD * PLM * PLEPS * MZF(ZFLXZ(:,:,:), KKA, KKU, KKL) CALL LES_MEAN_SUBGRID(-2.*ZCSVD*SQRT(PTKEM)*ZFLXZ/PLEPS, X_LES_SUBGRID_DISS_Sv2(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID(MZF(PWM, KKA, KKU, KKL)*ZFLXZ, X_LES_RES_W_SBG_Sv2(:,:,:,JSV) ) @@ -157,8 +157,8 @@ DO JSV=1,NSV ! approximation: diagnosed explicitely (without implicit term) ZA(:,:,:) = ETHETA(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PATHETA,PSRCM) ZFLXZ(:,:,:)= ( XCSHF * PPHI3 + ZCSV * PPSI_SV(:,:,:,JSV) ) & - * GZ_M_W(PTHLM,PDZZ, KKA, KKU, KKL) & - * GZ_M_W(PSVM(:,:,:,JSV),PDZZ, KKA, KKU, KKL) + * GZ_M_W(KKA, KKU, KKL,PTHLM,PDZZ) & + * GZ_M_W(KKA, KKU, KKL,PSVM(:,:,:,JSV),PDZZ) ZFLXZ(:,:,:)= PLM * PLEPS / (2.*ZCTSVD) * MZF(ZFLXZ, KKA, KKU, KKL) CALL LES_MEAN_SUBGRID( ZA*ZFLXZ, X_LES_SUBGRID_SvThv(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID( -XG/PTHVREF/3.*ZA*ZFLXZ, X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.) @@ -166,8 +166,8 @@ DO JSV=1,NSV IF (KRR>=1) THEN ZA(:,:,:) = EMOIST(KRR,KRRI,PTHLM,PRM,PLOCPEXNM,PAMOIST,PSRCM) ZFLXZ(:,:,:)= ( ZCSV * PPSI3 + ZCSV * PPSI_SV(:,:,:,JSV) ) & - * GZ_M_W(PRM(:,:,:,1),PDZZ, KKA, KKU, KKL) & - * GZ_M_W(PSVM(:,:,:,JSV),PDZZ, KKA, KKU, KKL) + * GZ_M_W(KKA, KKU, KKL,PRM(:,:,:,1),PDZZ) & + * GZ_M_W(KKA, KKU, KKL,PSVM(:,:,:,JSV),PDZZ) ZFLXZ(:,:,:)= PLM * PLEPS / (2.*ZCQSVD) * MZF(ZFLXZ, KKA, KKU, KKL) CALL LES_MEAN_SUBGRID( ZA*ZFLXZ, X_LES_SUBGRID_SvThv(:,:,:,JSV) , .TRUE.) CALL LES_MEAN_SUBGRID( -XG/PTHVREF/3.*ZA*ZFLXZ, X_LES_SUBGRID_SvPz(:,:,:,JSV), .TRUE.) diff --git a/src/common/turb/mode_turb_ver_sv_flux.F90 b/src/common/turb/mode_turb_ver_sv_flux.F90 index 781e1b125..271ee734e 100644 --- a/src/common/turb/mode_turb_ver_sv_flux.F90 +++ b/src/common/turb/mode_turb_ver_sv_flux.F90 @@ -429,7 +429,7 @@ DO JSV=1,ISV CALL LES_MEAN_SUBGRID(MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_WSv(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID(GZ_W_M(PWM,PDZZ, KKA, KKU, KKL)*MZF(ZFLXZ, KKA, KKU, KKL), & X_LES_RES_ddxa_W_SBG_UaSv(:,:,:,JSV) ) - CALL LES_MEAN_SUBGRID(MZF(GZ_M_W(PSVM(:,:,:,JSV),PDZZ, KKA, KKU, KKL)*ZFLXZ, KKA, KKU, KKL), & + CALL LES_MEAN_SUBGRID(MZF(GZ_M_W(KKA, KKU, KKL,PSVM(:,:,:,JSV),PDZZ)*ZFLXZ, KKA, KKU, KKL), & X_LES_RES_ddxa_Sv_SBG_UaSv(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID(-ZCSVP*SQRT(PTKEM)/PLM*MZF(ZFLXZ, KKA, KKU, KKL), X_LES_SUBGRID_SvPz(:,:,:,JSV) ) CALL LES_MEAN_SUBGRID(MZF(PWM*ZFLXZ, KKA, KKU, KKL), X_LES_RES_W_SBG_WSv(:,:,:,JSV) ) diff --git a/src/common/turb/turb.F90 b/src/common/turb/turb.F90 index e13203dac..989437065 100644 --- a/src/common/turb/turb.F90 +++ b/src/common/turb/turb.F90 @@ -242,7 +242,7 @@ USE MODE_BL89, ONLY: BL89 USE MODE_TURB_VER, ONLY : TURB_VER !!MODIF AROME !USE MODI_ROTATE_WIND -!USE MODI_TURB_HOR_SPLT +!USE MODE_TURB_HOR_SPLT, ONLY: TURB_HOR_SPLT USE MODE_TKE_EPS_SOURCES, ONLY: TKE_EPS_SOURCES USE MODI_SHUMAN, ONLY : MZF, MXF, MYF USE MODI_GRADIENT_M @@ -831,11 +831,11 @@ ZMTHR = 0. ! w'th'r' IF (HTOM=='TM06') THEN CALL TM06(KKA,KKU,KKL,PTHVREF,PBL_DEPTH,PZZ,PSFTH,ZMWTH,ZMTH2) ! - ZFWTH = -GZ_M_W(ZMWTH,PDZZ, KKA,KKU,KKL) ! -d(w'2th' )/dz - !ZFWR = -GZ_M_W(ZMWR, PDZZ,KKA,KKU,KKL) ! -d(w'2r' )/dz - ZFTH2 = -GZ_W_M(ZMTH2,PDZZ,KKA,KKU,KKL) ! -d(w'th'2 )/dz - !ZFR2 = -GZ_W_M(ZMR2, PDZZ,KKA,KKU,KKL) ! -d(w'r'2 )/dz - !ZFTHR = -GZ_W_M(ZMTHR,PDZZ,KKA,KKU,KKL) ! -d(w'th'r')/dz + ZFWTH = -GZ_M_W(KKA,KKU,KKL,ZMWTH,PDZZ) ! -d(w'2th' )/dz + !ZFWR = -GZ_M_W(KKA,KKU,KKL,ZMWR, PDZZ) ! -d(w'2r' )/dz + ZFTH2 = -GZ_W_M(ZMTH2,PDZZ) ! -d(w'th'2 )/dz + !ZFR2 = -GZ_W_M(ZMR2, PDZZ) ! -d(w'r'2 )/dz + !ZFTHR = -GZ_W_M(ZMTHR,PDZZ) ! -d(w'th'r')/dz ! ZFWTH(:,:,IKTE:) = 0. ZFWTH(:,:,:IKTB) = 0. @@ -948,8 +948,8 @@ IF( LBUDGET_SV ) THEN END DO END IF ! -#ifdef REPRO48 -#else +#ifdef REPRO48 !Les budgets des termes horizontaux de la turb sont présents dans AROME +#else ! alors que ces termes ne sont pas calculés IF( HTURBDIM == '3DIM' ) THEN #endif IF( LBUDGET_U ) CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_U ), 'HTURB', PRUS (:, :, :) ) @@ -985,7 +985,8 @@ IF( HTURBDIM == '3DIM' ) THEN CALL BUDGET_STORE_INIT( TBUDGETS(NBUDGET_SV1 - 1 + JSV), 'HTURB', PRSVS(:, :, :, JSV) ) END DO END IF - +!#ifdef REPRO48 !à supprimer une fois le précédent ifdef REPRO48 validé +!#else ! CALL TURB_HOR_SPLT(KSPLIT, KRR, KRRL, KRRI, PTSTEP, & ! HLBCX,HLBCY,OTURB_FLX,OSUBG_COND, & ! TPFILE, & @@ -1001,7 +1002,7 @@ IF( HTURBDIM == '3DIM' ) THEN ! PDYP,PTHP,PSIGS, & ! ZTRH, & ! PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) - +!#endif IF( LBUDGET_U ) CALL BUDGET_STORE_END( TBUDGETS(NBUDGET_U), 'HTURB', PRUS(:, :, :) ) IF( LBUDGET_V ) CALL BUDGET_STORE_END( TBUDGETS(NBUDGET_V), 'HTURB', PRVS(:, :, :) ) IF( LBUDGET_W ) CALL BUDGET_STORE_END( TBUDGETS(NBUDGET_W), 'HTURB', PRWS(:, :, :) ) @@ -1206,13 +1207,13 @@ IF (LLES_CALL) THEN CALL LES_MEAN_SUBGRID(2./3.*PTKET,X_LES_SUBGRID_U2) CALL LES_MEAN_SUBGRID(2./3.*PTKET,X_LES_SUBGRID_V2) CALL LES_MEAN_SUBGRID(2./3.*PTKET,X_LES_SUBGRID_W2) - CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(GZ_M_W(PTHLT,PDZZ, KKA, KKU, KKL),& + CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(GZ_M_W(KKA,KKU,KKL,PTHLT,PDZZ),& KKA, KKU, KKL),X_LES_RES_ddz_Thl_SBG_W2) IF (KRR>=1) & - CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(GZ_M_W(PRT(:,:,:,1),PDZZ, KKA, KKU, KKL),& + CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(GZ_M_W(KKA,KKU,KKL,PRT(:,:,:,1),PDZZ),& &KKA, KKU, KKL),X_LES_RES_ddz_Rt_SBG_W2) DO JSV=1,NSV - CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(GZ_M_W(PSVT(:,:,:,JSV),PDZZ, KKA, KKU, KKL), & + CALL LES_MEAN_SUBGRID(2./3.*PTKET*MZF(GZ_M_W(KKA,KKU,KKL,PSVT(:,:,:,JSV),PDZZ), & &KKA, KKU, KKL), X_LES_RES_ddz_Sv_SBG_W2(:,:,:,JSV)) END DO END IF diff --git a/src/mesonh/turb/turb.f90 b/src/mesonh/turb/turb.f90 index cb60d897e..3c99d04e4 100644 --- a/src/mesonh/turb/turb.f90 +++ b/src/mesonh/turb/turb.f90 @@ -708,7 +708,7 @@ IF (KRRL >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZATHETA) + CALL IO_FIELD_WRITE(TPFILE,TZFIELD,ZATHETA) ! TZFIELD%CMNHNAME = 'AMOIST' TZFIELD%CSTDNAME = '' @@ -720,7 +720,7 @@ IF (KRRL >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_Field_write(TPFILE,TZFIELD,ZAMOIST) + CALL IO_FIELD_WRITE(TPFILE,TZFIELD,ZAMOIST) END IF ! ELSE -- GitLab