Skip to content
Snippets Groups Projects
Commit 2d670e55 authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Quentin 07/07/2022: Packing LES_MEAN_SUBGRID budgets

parent b34fcde6
No related branches found
No related tags found
No related merge requests found
...@@ -66,6 +66,10 @@ Budgets/DDH ...@@ -66,6 +66,10 @@ Budgets/DDH
- Le code des budgets devrait être revu: pas en phase avec celui de Méso-NH et phasage a priori - Le code des budgets devrait être revu: pas en phase avec celui de Méso-NH et phasage a priori
inutile car très peu de code semble réellement utile pour AROME inutile car très peu de code semble réellement utile pour AROME
Budgets/LES
Une fois toutes les routines de la turbulence ont leur dimension horizontale packée et
utilisent LES_MEAN_SUBGRID_PHY a la place de LES_MEAN_SUBGRID_PHY : renommer les routines arome/turb et mesonh/turb en les_mean_subgrid.F90 et remplacer partout dans le code les appels (enlever le _PHY) + supprimer les anciennes routines
SPP SPP
- modd_spp_type est pour l'instant dans mpa/micro/externals mais n'est pas de la microphysique - modd_spp_type est pour l'instant dans mpa/micro/externals mais n'est pas de la microphysique
......
...@@ -74,6 +74,7 @@ YDDIMPHYEX%NKA=KKT ...@@ -74,6 +74,7 @@ YDDIMPHYEX%NKA=KKT
YDDIMPHYEX%NKU=1 YDDIMPHYEX%NKU=1
YDDIMPHYEX%NKB=KKT-KVEXT YDDIMPHYEX%NKB=KKT-KVEXT
YDDIMPHYEX%NKE=1+KVEXT YDDIMPHYEX%NKE=1+KVEXT
YDDIMPHYEX%NKLES=KKT-2*KVEXT
YDDIMPHYEX%NKTB=1+KVEXT YDDIMPHYEX%NKTB=1+KVEXT
YDDIMPHYEX%NKTE=KKT-KVEXT YDDIMPHYEX%NKTE=KKT-KVEXT
! !
...@@ -82,6 +83,7 @@ YDDIMPHYEX%NJBC=1 ...@@ -82,6 +83,7 @@ YDDIMPHYEX%NJBC=1
YDDIMPHYEX%NIEC=KIE YDDIMPHYEX%NIEC=KIE
YDDIMPHYEX%NJEC=KJT YDDIMPHYEX%NJEC=KJT
! !
YDDIMPHYEX%NLESMASK = 0 ! never used in AROME
IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 1, ZHOOK_HANDLE) IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 1, ZHOOK_HANDLE)
! !
END SUBROUTINE FILL_DIMPHYEX END SUBROUTINE FILL_DIMPHYEX
......
!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
!-----------------------------------------------------------------
!--------------- special set of characters for RCS information
!-----------------------------------------------------------------
! $Source$ $Revision$
! MASDEV4_7 les 2006/08/30 18:41:10
!-----------------------------------------------------------------
! #####################
MODULE MODI_LES_MEAN_SUBGRID_PHY
! #####################
!
INTERFACE LES_MEAN_SUBGRID_PHY
!
SUBROUTINE LES_MEAN_SUBGRID_3D_PHY(D,PA, PA_MEAN, OSUM)
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(:,:), INTENT(IN) :: PA
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
END SUBROUTINE LES_MEAN_SUBGRID_3D_PHY
!
SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY(D,PA, PA_MEAN, OSUM)
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(:), INTENT(IN) :: PA
REAL, DIMENSION(:), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
END SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY
!
END INTERFACE LES_MEAN_SUBGRID_PHY
!
END MODULE MODI_LES_MEAN_SUBGRID_PHY
!
! ##############################################
SUBROUTINE LES_MEAN_SUBGRID_3D_PHY(D, PA, PA_MEAN, OSUM)
! ##############################################
!
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(:,:), INTENT(IN) :: PA
REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
END SUBROUTINE LES_MEAN_SUBGRID_3D_PHY
!
! ##############################################
SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY(D, PA, PA_MEAN, OSUM)
! ##############################################
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(:), INTENT(IN) :: PA
REAL, DIMENSION(:), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
END SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY
...@@ -53,6 +53,7 @@ TYPE DIMPHYEX_t ...@@ -53,6 +53,7 @@ TYPE DIMPHYEX_t
! 1: as for Méso-NH, levels are numbered from ground to space ! 1: as for Méso-NH, levels are numbered from ground to space
! -1: as for AROME, levels are numbered from space to ground ! -1: as for AROME, levels are numbered from space to ground
INTEGER :: NKT ! Array total dimension INTEGER :: NKT ! Array total dimension
INTEGER :: NKLES ! Total physical k dimension (for LES diag)
INTEGER :: NKA ! Near ground array index (is an unphysical level if JPVEXT!=0) INTEGER :: NKA ! Near ground array index (is an unphysical level if JPVEXT!=0)
INTEGER :: NKU ! Uppest atmosphere array index (is an unphysical level if JPVEXT!=0) INTEGER :: NKU ! Uppest atmosphere array index (is an unphysical level if JPVEXT!=0)
INTEGER :: NKB ! Near ground physical array index (e.g. equal to 1+JPVEXT if NKL==1) INTEGER :: NKB ! Near ground physical array index (e.g. equal to 1+JPVEXT if NKL==1)
...@@ -73,6 +74,8 @@ TYPE DIMPHYEX_t ...@@ -73,6 +74,8 @@ TYPE DIMPHYEX_t
INTEGER :: NIJT ! NIT*NJT for horizontal packing INTEGER :: NIJT ! NIT*NJT for horizontal packing
INTEGER :: NIJB ! First horizontal inner mass point index INTEGER :: NIJB ! First horizontal inner mass point index
INTEGER :: NIJE ! Last horizontal inner mass point index INTEGER :: NIJE ! Last horizontal inner mass point index
!
INTEGER :: NLESMASK ! Number of LES masks
! !
END TYPE DIMPHYEX_t END TYPE DIMPHYEX_t
! !
......
...@@ -36,6 +36,8 @@ SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, LTURB) ...@@ -36,6 +36,8 @@ SUBROUTINE FILL_DIMPHYEX(YDDIMPHYEX, KIT, KJT, KKT, LTURB)
! !
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_PARAMETERS, ONLY: JPVEXT USE MODD_PARAMETERS, ONLY: JPVEXT
USE MODD_LES, ONLY : LLES_NEB_MASK, LLES_CORE_MASK, LLES_CS_MASK, LLES_MY_MASK, &
NLES_MASKS_USER
USE PARKIND1, ONLY : JPRB USE PARKIND1, ONLY : JPRB
USE YOMHOOK , ONLY : LHOOK, DR_HOOK USE YOMHOOK , ONLY : LHOOK, DR_HOOK
USE MODE_ll USE MODE_ll
...@@ -72,6 +74,7 @@ YDDIMPHYEX%NKA=1 ...@@ -72,6 +74,7 @@ YDDIMPHYEX%NKA=1
YDDIMPHYEX%NKU=KKT YDDIMPHYEX%NKU=KKT
YDDIMPHYEX%NKB=1+JPVEXT YDDIMPHYEX%NKB=1+JPVEXT
YDDIMPHYEX%NKE=KKT-JPVEXT YDDIMPHYEX%NKE=KKT-JPVEXT
YDDIMPHYEX%NKLES=KKT-2*JPVEXT
YDDIMPHYEX%NKTB=1+JPVEXT YDDIMPHYEX%NKTB=1+JPVEXT
YDDIMPHYEX%NKTE=KKT-JPVEXT YDDIMPHYEX%NKTE=KKT-JPVEXT
! !
...@@ -94,5 +97,11 @@ ELSE ...@@ -94,5 +97,11 @@ ELSE
END IF END IF
IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 1, ZHOOK_HANDLE) IF (LHOOK) CALL DR_HOOK('FILL_DIMPHYEX', 1, ZHOOK_HANDLE)
! !
YDDIMPHYEX%NLESMASK = 1
IF (LLES_MY_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + NLES_MASKS_USER
IF (LLES_NEB_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + 2
IF (LLES_CORE_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + 2
IF (LLES_CS_MASK) YDDIMPHYEX%NLESMASK = YDDIMPHYEX%NLESMASK + 3
!
END SUBROUTINE FILL_DIMPHYEX END SUBROUTINE FILL_DIMPHYEX
END MODULE MODE_FILL_DIMPHYEX END MODULE MODE_FILL_DIMPHYEX
!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!MNH_LIC for details. version 1.
!-----------------------------------------------------------------
!--------------- special set of characters for RCS information
!-----------------------------------------------------------------
! $Source$ $Revision$
! MASDEV4_7 les 2006/08/30 18:41:10
!-----------------------------------------------------------------
! #####################
MODULE MODI_LES_MEAN_SUBGRID_PHY
! #####################
!
INTERFACE LES_MEAN_SUBGRID_PHY
!
SUBROUTINE LES_MEAN_SUBGRID_3D_PHY(D,PA, PA_MEAN, OSUM)
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PA
!
REAL, DIMENSION(D%NKLES,NLES_CURRENT_TCOUNT,D%NLESMASK), INTENT(INOUT) :: PA_MEAN
!
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
END SUBROUTINE LES_MEAN_SUBGRID_3D_PHY
!
SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY(D,PA, PA_MEAN, OSUM)
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(D%NIJT), INTENT(IN) :: PA
!
REAL, DIMENSION(NLES_CURRENT_TCOUNT), INTENT(INOUT) :: PA_MEAN
!
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
END SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY
!
END INTERFACE LES_MEAN_SUBGRID_PHY
!
END MODULE MODI_LES_MEAN_SUBGRID_PHY
!
! ##############################################
SUBROUTINE LES_MEAN_SUBGRID_3D_PHY(D, PA, PA_MEAN, OSUM)
! ##############################################
!
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(D%NIJT,D%NKT), INTENT(IN) :: PA
REAL, DIMENSION(D%NKLES,NLES_CURRENT_TCOUNT,D%NLESMASK), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
CALL LES_MEAN_SUBGRID_unpack3D(D,PA, PA_MEAN, OSUM)
!
END SUBROUTINE LES_MEAN_SUBGRID_3D_PHY
!
! ##############################################
SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY(D, PA, PA_MEAN, OSUM)
! ##############################################
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(D%NIJT), INTENT(IN) :: PA
REAL, DIMENSION(NLES_CURRENT_TCOUNT), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
CALL LES_MEAN_SUBGRID_unpackSURF(D,PA, PA_MEAN, OSUM)
!
END SUBROUTINE LES_MEAN_SUBGRID_SURF_PHY
!
! ##############################################
SUBROUTINE LES_MEAN_SUBGRID_unpack3D(D, PA, PA_MEAN, OSUM)
! ##############################################
!
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
USE MODI_LES_MEAN_SUBGRID
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PA
REAL, DIMENSION(D%NKLES,NLES_CURRENT_TCOUNT,D%NLESMASK), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
CALL LES_MEAN_SUBGRID_3D(PA, PA_MEAN, OSUM)
!
END SUBROUTINE LES_MEAN_SUBGRID_unpack3D
!
! ##############################################
SUBROUTINE LES_MEAN_SUBGRID_unpackSURF(D, PA, PA_MEAN, OSUM)
! ##############################################
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_LES, ONLY: NLES_CURRENT_TCOUNT
USE MODI_LES_MEAN_SUBGRID
!
IMPLICIT NONE
!
TYPE(DIMPHYEX_t), INTENT(IN) :: D
REAL, DIMENSION(D%NIT,D%NJT), INTENT(IN) :: PA
REAL, DIMENSION(NLES_CURRENT_TCOUNT), INTENT(INOUT) :: PA_MEAN
LOGICAL, OPTIONAL, INTENT(IN) :: OSUM
!
CALL LES_MEAN_SUBGRID_SURF(PA, PA_MEAN, OSUM)
!
END SUBROUTINE LES_MEAN_SUBGRID_unpackSURF
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment