From 602a4fc91015a7ba9b420cf8e90918ec31078444 Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Thu, 7 Jul 2022 16:54:02 +0200 Subject: [PATCH] Quentin 07/07/2022: Packing Budget --- src/arome/aux/mode_budget.F90 | 30 ++++++++++++++++++++++++-- src/mesonh/aux/mode_budget.f90 | 39 +++++++++++++++++++++++++++++++--- 2 files changed, 64 insertions(+), 5 deletions(-) diff --git a/src/arome/aux/mode_budget.F90 b/src/arome/aux/mode_budget.F90 index bd59b9e97..afd54a187 100644 --- a/src/arome/aux/mode_budget.F90 +++ b/src/arome/aux/mode_budget.F90 @@ -9,14 +9,40 @@ SUBROUTINE BUDGET_STORE_INIT(TPBUDGET, HSOURCE, PVARS) CHARACTER(LEN=*), INTENT(IN) :: HSOURCE ! Name of the source term REAL, DIMENSION(:,:,:), INTENT(IN) :: PVARS ! Current value to be stored END SUBROUTINE BUDGET_STORE_INIT - +! +SUBROUTINE BUDGET_STORE_INIT_PHY(D,TPBUDGET, HSOURCE, PVARS) + USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t + TYPE(DIMPHYEX_t), INTENT(IN) :: D + TYPE(TBUDGETDATA), INTENT(INOUT) :: TPBUDGET ! Budget datastructure + CHARACTER(LEN=*), INTENT(IN) :: HSOURCE ! Name of the source term + REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PVARS ! Current value to be stored +END SUBROUTINE BUDGET_STORE_INIT_PHY +! SUBROUTINE BUDGET_STORE_END(TPBUDGET, HSOURCE, PVARS) TYPE(TBUDGETDATA), INTENT(INOUT) :: TPBUDGET ! Budget datastructure CHARACTER(LEN=*), INTENT(IN) :: HSOURCE ! Name of the source term REAL, DIMENSION(:,:,:), INTENT(IN) :: PVARS ! Current value to be stored CALL BUDGET_DDH(PVARS, TPBUDGET%NBUDGET, HSOURCE, TPBUDGET%YDDDH, TPBUDGET%YDLDDH, TPBUDGET%YDMDDH) END SUBROUTINE BUDGET_STORE_END - +! +SUBROUTINE BUDGET_STORE_END_PHY(D,TPBUDGET, HSOURCE, PVARS) + USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t + TYPE(DIMPHYEX_t), INTENT(IN) :: D + TYPE(TBUDGETDATA), INTENT(INOUT) :: TPBUDGET ! Budget datastructure + CHARACTER(LEN=*), INTENT(IN) :: HSOURCE ! Name of the source term + REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PVARS ! Current value to be stored + CALL BUDGET_STORE_END(TPBUDGET, HSOURCE, PVARS) +END SUBROUTINE BUDGET_STORE_END_PHY +! +SUBROUTINE BUDGET_STORE_ADD_PHY(D,TPBUDGET, HSOURCE, PVARS) + USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t + TYPE(DIMPHYEX_t), INTENT(IN) :: D + TYPE(TBUDGETDATA), INTENT(INOUT) :: TPBUDGET ! Budget datastructure + CHARACTER(LEN=*), INTENT(IN) :: HSOURCE ! Name of the source term + REAL, DIMENSION(D%NIT,D%NJT,D%NKT), INTENT(IN) :: PVARS ! Current value to be stored + CALL BUDGET_STORE_ADD(TPBUDGET, HSOURCE, PVARS) +END SUBROUTINE BUDGET_STORE_ADD_PHY +! SUBROUTINE BUDGET_STORE_ADD(TPBUDGET, HSOURCE, PVARS) #ifdef REPRO48 USE DDH_MIX, ONLY:NFLEVGDDH diff --git a/src/mesonh/aux/mode_budget.f90 b/src/mesonh/aux/mode_budget.f90 index 13c746c43..89aad3a6e 100644 --- a/src/mesonh/aux/mode_budget.f90 +++ b/src/mesonh/aux/mode_budget.f90 @@ -26,14 +26,47 @@ implicit none private -public :: Budget_store_init -public :: Budget_store_end -public :: Budget_store_add +public :: Budget_store_init,Budget_store_init_phy +public :: Budget_store_end, Budget_store_end_phy +public :: Budget_store_add, Budget_store_add_phy real :: ztime1, ztime2 contains +subroutine Budget_store_init_phy(D, tpbudget, hsource, pvars) + USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t + TYPE(DIMPHYEX_t), INTENT(IN) :: D + type(tbudgetdata), intent(inout) :: tpbudget ! Budget datastructure + character(len=*), intent(in) :: hsource ! Name of the source term + real, dimension(D%NIT,D%NJT,D%NKT), intent(in) :: pvars ! Current value to be stored +! + call Budget_store_init(tpbudget, hsource, pvars) +! +end subroutine Budget_store_init_phy +! +subroutine Budget_store_end_phy(D, tpbudget, hsource, pvars) + USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t + TYPE(DIMPHYEX_t), INTENT(IN) :: D + type(tbudgetdata), intent(inout) :: tpbudget ! Budget datastructure + character(len=*), intent(in) :: hsource ! Name of the source term + real, dimension(D%NIT,D%NJT,D%NKT), intent(in) :: pvars ! Current value to be stored +! + call Budget_store_end(tpbudget, hsource, pvars) +! +end subroutine Budget_store_end_phy +! +subroutine Budget_store_add_phy(D, tpbudget, hsource, pvars) + USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t + TYPE(DIMPHYEX_t), INTENT(IN) :: D + type(tbudgetdata), intent(inout) :: tpbudget ! Budget datastructure + character(len=*), intent(in) :: hsource ! Name of the source term + real, dimension(D%NIT,D%NJT,D%NKT), intent(in) :: pvars ! Current value to be stored +! + call Budget_store_add(tpbudget, hsource, pvars) +! +end subroutine Budget_store_add_phy +! subroutine Budget_store_init( tpbudget, hsource, pvars ) use modd_les, only: lles_call -- GitLab