From b4c2e678eaa9382d2b1ca92108b742e5bef2a02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Riette?= <sebastien.riette@meteo.fr> Date: Mon, 17 Oct 2022 13:45:39 +0200 Subject: [PATCH] S. Riette 17 oct 2022: offline tools update Compilation system update with the help from Rolf Heilemann Myhre --- build/with_fcm/arch/arch-gnu.fcm | 2 +- src/arome/aux/mode_budget.F90 | 1 + src/common/aux/modd_budget.F90 | 49 ++++++++++---- src/common/aux/mode_budget.F90 | 33 ++++++++- .../aux/mode_sources_neg_correct.F90 | 0 src/common/micro/ini_snow.F90 | 1 - .../turb/les_mean_subgrid_phy.F90 | 0 .../turb/mode_ibm_mixinglength.F90 | 0 .../ice_adjust/getdata_ice_adjust_mod.F90 | 12 +++- src/testprogs/ice_adjust/main_ice_adjust.F90 | 67 ++++++++++++++----- src/testprogs/rain_ice/main_rain_ice.F90 | 22 +++++- tools/INSTALL_pack_ial.md | 15 ++--- tools/check_commit_ial.sh | 6 ++ tools/check_commit_testprogs.sh | 7 +- 14 files changed, 169 insertions(+), 46 deletions(-) rename src/{arome => common}/aux/mode_sources_neg_correct.F90 (100%) rename src/{arome => common}/turb/les_mean_subgrid_phy.F90 (100%) rename src/{arome => common}/turb/mode_ibm_mixinglength.F90 (100%) diff --git a/build/with_fcm/arch/arch-gnu.fcm b/build/with_fcm/arch/arch-gnu.fcm index 63e0200e1..81eebf9f2 100644 --- a/build/with_fcm/arch/arch-gnu.fcm +++ b/build/with_fcm/arch/arch-gnu.fcm @@ -1,6 +1,6 @@ # Compilation $FCOMPILER = gfortran -$BASE_FFLAGS = -c -fPIC -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fopenmp -fconvert=swap +$BASE_FFLAGS = -c -fPIC -fdefault-real-8 -fdefault-double-8 -ffree-line-length-none -fopenmp -fconvert=swap -fallow-argument-mismatch $PROD_FFLAGS = -O3 $DEV_FFLAGS = -O1 $DEBUG_FFLAGS = -fbounds-check diff --git a/src/arome/aux/mode_budget.F90 b/src/arome/aux/mode_budget.F90 index 624efdfa9..3a258b244 100644 --- a/src/arome/aux/mode_budget.F90 +++ b/src/arome/aux/mode_budget.F90 @@ -15,6 +15,7 @@ SUBROUTINE BUDGET_STORE_INIT_PHY(D,TPBUDGET, HSOURCE, PVARS) 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(TPBUDGET, HSOURCE, PVARS) diff --git a/src/common/aux/modd_budget.F90 b/src/common/aux/modd_budget.F90 index 65781c77f..2e247b6cd 100644 --- a/src/common/aux/modd_budget.F90 +++ b/src/common/aux/modd_budget.F90 @@ -82,22 +82,43 @@ END TYPE TBUDGETCONF_t TYPE(TBUDGETCONF_t), TARGET :: TBUCONF ! ! General variables -LOGICAL :: LBU_ENABLE=.FALSE. +LOGICAL, POINTER :: LBU_ENABLE=>NULL() ! INTEGER :: NBUMOD=0 ! model in which budget is calculated ! -LOGICAL :: LBUDGET_U=.FALSE. ! flag to compute budget of RhoJu and/or LES budgets with u -LOGICAL :: LBUDGET_V=.FALSE. ! flag to compute budget of RhoJv and/or LES budgets with u -LOGICAL :: LBUDGET_W=.FALSE. ! flag to compute budget of RhoJw and/or LES budgets with u -LOGICAL :: LBUDGET_TH=.FALSE. ! flag to compute budget of RhoJTh and/or LES budgets with th -LOGICAL :: LBUDGET_TKE=.FALSE.! flag to compute budget of RhoJTke and/or LES budgets with Tke -LOGICAL :: LBUDGET_RV=.FALSE. ! flag to compute budget of RhoJrv and/or LES budgets with rv -LOGICAL :: LBUDGET_RC=.FALSE. ! flag to compute budget of RhoJrc and/or LES budgets with rc -LOGICAL :: LBUDGET_RR=.FALSE. ! flag to compute budget of RhoJrr and/or LES budgets with rr -LOGICAL :: LBUDGET_RI=.FALSE. ! flag to compute budget of RhoJri and/or LES budgets with ri -LOGICAL :: LBUDGET_RS=.FALSE. ! flag to compute budget of RhoJrs and/or LES budgets with rs -LOGICAL :: LBUDGET_RG=.FALSE. ! flag to compute budget of RhoJrg and/or LES budgets with rg -LOGICAL :: LBUDGET_RH=.FALSE. ! flag to compute budget of RhoJrh and/or LES budgets with rh -LOGICAL :: LBUDGET_SV=.FALSE. ! flag to compute budget of RhoJsv and/or LES budgets with sv +LOGICAL, POINTER :: LBUDGET_U=>NULL() ! flag to compute budget of RhoJu and/or LES budgets with u +LOGICAL, POINTER :: LBUDGET_V=>NULL() ! flag to compute budget of RhoJv and/or LES budgets with u +LOGICAL, POINTER :: LBUDGET_W=>NULL() ! flag to compute budget of RhoJw and/or LES budgets with u +LOGICAL, POINTER :: LBUDGET_TH=>NULL() ! flag to compute budget of RhoJTh and/or LES budgets with th +LOGICAL, POINTER :: LBUDGET_TKE=>NULL() ! flag to compute budget of RhoJTke and/or LES budgets with Tke +LOGICAL, POINTER :: LBUDGET_RV=>NULL() ! flag to compute budget of RhoJrv and/or LES budgets with rv +LOGICAL, POINTER :: LBUDGET_RC=>NULL() ! flag to compute budget of RhoJrc and/or LES budgets with rc +LOGICAL, POINTER :: LBUDGET_RR=>NULL() ! flag to compute budget of RhoJrr and/or LES budgets with rr +LOGICAL, POINTER :: LBUDGET_RI=>NULL() ! flag to compute budget of RhoJri and/or LES budgets with ri +LOGICAL, POINTER :: LBUDGET_RS=>NULL() ! flag to compute budget of RhoJrs and/or LES budgets with rs +LOGICAL, POINTER :: LBUDGET_RG=>NULL() ! flag to compute budget of RhoJrg and/or LES budgets with rg +LOGICAL, POINTER :: LBUDGET_RH=>NULL() ! flag to compute budget of RhoJrh and/or LES budgets with rh +LOGICAL, POINTER :: LBUDGET_SV=>NULL() ! flag to compute budget of RhoJsv and/or LES budgets with sv + +CONTAINS + +SUBROUTINE TBUCONF_ASSOCIATE() + IMPLICIT NONE + LBU_ENABLE=>TBUCONF%LBU_ENABLE + + LBUDGET_U=>TBUCONF%LBUDGET_U + LBUDGET_V=>TBUCONF%LBUDGET_V + LBUDGET_W=>TBUCONF%LBUDGET_W + LBUDGET_TH=>TBUCONF%LBUDGET_TH + LBUDGET_TKE=>TBUCONF%LBUDGET_TKE + LBUDGET_RV=>TBUCONF%LBUDGET_RV + LBUDGET_RC=>TBUCONF%LBUDGET_RC + LBUDGET_RR=>TBUCONF%LBUDGET_RR + LBUDGET_RI=>TBUCONF%LBUDGET_RI + LBUDGET_RS=>TBUCONF%LBUDGET_RS + LBUDGET_RG=>TBUCONF%LBUDGET_RG + LBUDGET_RH=>TBUCONF%LBUDGET_RH + LBUDGET_SV=>TBUCONF%LBUDGET_SV +END SUBROUTINE TBUCONF_ASSOCIATE ! END MODULE MODD_BUDGET diff --git a/src/common/aux/mode_budget.F90 b/src/common/aux/mode_budget.F90 index dc469b195..e50f2185b 100644 --- a/src/common/aux/mode_budget.F90 +++ b/src/common/aux/mode_budget.F90 @@ -1,5 +1,5 @@ MODULE MODE_BUDGET -USE MODD_BUDGET, ONLY: TBUDGETDATA +USE MODD_BUDGET, ONLY : TBUDGETDATA IMPLICIT NONE CONTAINS @@ -8,13 +8,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 + CALL BUDGET_STORE_INIT(TPBUDGET, HSOURCE, PVARS) +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 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) TYPE(TBUDGETDATA), INTENT(INOUT) :: TPBUDGET ! Budget datastructure CHARACTER(LEN=*), INTENT(IN) :: HSOURCE ! Name of the source term diff --git a/src/arome/aux/mode_sources_neg_correct.F90 b/src/common/aux/mode_sources_neg_correct.F90 similarity index 100% rename from src/arome/aux/mode_sources_neg_correct.F90 rename to src/common/aux/mode_sources_neg_correct.F90 diff --git a/src/common/micro/ini_snow.F90 b/src/common/micro/ini_snow.F90 index b1d284f63..4461cac46 100644 --- a/src/common/micro/ini_snow.F90 +++ b/src/common/micro/ini_snow.F90 @@ -46,7 +46,6 @@ ! ------------ ! USE MODD_CST -USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_PARAM_ICE USE MODD_RAIN_ICE_DESCR diff --git a/src/arome/turb/les_mean_subgrid_phy.F90 b/src/common/turb/les_mean_subgrid_phy.F90 similarity index 100% rename from src/arome/turb/les_mean_subgrid_phy.F90 rename to src/common/turb/les_mean_subgrid_phy.F90 diff --git a/src/arome/turb/mode_ibm_mixinglength.F90 b/src/common/turb/mode_ibm_mixinglength.F90 similarity index 100% rename from src/arome/turb/mode_ibm_mixinglength.F90 rename to src/common/turb/mode_ibm_mixinglength.F90 diff --git a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 index 1fb0a4a02..3637d1b4b 100644 --- a/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 +++ b/src/testprogs/ice_adjust/getdata_ice_adjust_mod.F90 @@ -26,7 +26,7 @@ END INTERFACE CONTAINS SUBROUTINE GETDATA_ICE_ADJUST (NPROMA, NGPBLKS, NFLEVG, PRHODJ_B, PEXNREF_B, PRHODREF_B, PPABSM_B, PTHT_B, ZICE_CLD_WGT_B, & -& ZSIGQSAT_B, PSIGS_B, PMFCONV_B, PRC_MF_B, PRI_MF_B, PCF_MF_B, PTHS_B, PRS_B, PSRCS_B, PCLDFR_B, PHLC_HRC_B, PHLC_HCF_B, & +& ZSIGQSAT_B, PSIGS_B, PMFCONV_B, PRC_MF_B, PRI_MF_B, PCF_MF_B, ZDUM1_B, ZDUM2_B, ZDUM3_B, ZDUM4_B, ZDUM5_B, PTHS_B, PRS_B, PSRCS_B, PCLDFR_B, PHLC_HRC_B, PHLC_HCF_B, & & PHLI_HRI_B, PHLI_HCF_B, ZRS_B, ZZZ_B, PRS_OUT_B, PSRCS_OUT_B, PCLDFR_OUT_B, PHLC_HRC_OUT_B, PHLC_HCF_OUT_B, & & PHLI_HRI_OUT_B, PHLI_HCF_OUT_B, LDVERBOSE) @@ -57,6 +57,11 @@ REAL, ALLOCATABLE :: PMFCONV_B (:,:,:,:) REAL, ALLOCATABLE :: PRC_MF_B (:,:,:,:) REAL, ALLOCATABLE :: PRI_MF_B (:,:,:,:) REAL, ALLOCATABLE :: PCF_MF_B (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM1_B (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM2_B (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM3_B (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM4_B (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM5_B (:,:,:,:) REAL, ALLOCATABLE :: PTHS_B (:,:,:,:) REAL, ALLOCATABLE :: PRS_B (:,:,:,:,:) REAL, ALLOCATABLE :: PRS_OUT_B (:,:,:,:,:) @@ -132,6 +137,11 @@ ALLOCATE (PMFCONV_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRC_MF_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRI_MF_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PCF_MF_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZDUM1_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZDUM2_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZDUM3_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZDUM4_B (NPROMA,1,NFLEVG,NGPBLKS)) +ALLOCATE (ZDUM5_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PTHS_B (NPROMA,1,NFLEVG,NGPBLKS)) ALLOCATE (PRS_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) ALLOCATE (PRS_OUT_B (NPROMA,1,NFLEVG,KRR,NGPBLKS)) diff --git a/src/testprogs/ice_adjust/main_ice_adjust.F90 b/src/testprogs/ice_adjust/main_ice_adjust.F90 index 02ab5c6ef..c488c4b41 100644 --- a/src/testprogs/ice_adjust/main_ice_adjust.F90 +++ b/src/testprogs/ice_adjust/main_ice_adjust.F90 @@ -4,12 +4,14 @@ USE XRD_GETOPTIONS USE GETDATA_ICE_ADJUST_MOD USE MODI_ICE_ADJUST USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t -USE MODD_CST, ONLY: CST_t, CST -USE MODD_NEB, ONLY: NEB_t, NEB -USE MODD_RAIN_ICE_PARAM, ONLY : RAIN_ICE_PARAM_t +USE MODD_CST, ONLY: CST +USE MODD_NEB, ONLY: NEB +USE MODD_TURB_n, ONLY: TURBN, TURB_GOTO_MODEL +USE MODD_RAIN_ICE_PARAM, ONLY : RAIN_ICE_PARAM_t, RAIN_ICE_PARAM_ASSOCIATE USE MODI_INI_CST USE MODI_INI_NEB -USE MODD_BUDGET, ONLY: TBUDGETDATA, NBUDGET_RI, TBUCONF +USE MODI_INI_RAIN_ICE +USE MODD_BUDGET !, ONLY: TBUCONF_ASSOCIATE, TBUDGETDATA, NBUDGET_RI, TBUCONF USE STACK_MOD USE OMP_LIB USE YOMHOOK, ONLY : LHOOK, DR_HOOK @@ -44,6 +46,11 @@ REAL, ALLOCATABLE :: ZRS (:,:,:,:,:) REAL, ALLOCATABLE :: ZZZ (:,:,:,:) REAL, ALLOCATABLE :: ZSIGQSAT (:,:,:) REAL, ALLOCATABLE :: ZICE_CLD_WGT (:,:,:) +REAL, ALLOCATABLE :: ZDUM1 (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM2 (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM3 (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM4 (:,:,:,:) +REAL, ALLOCATABLE :: ZDUM5 (:,:,:,:) REAL, ALLOCATABLE :: PRS_OUT (:,:,:,:,:) REAL, ALLOCATABLE :: PSRCS_OUT (:,:,:,:) @@ -64,7 +71,8 @@ CHARACTER(LEN=4) :: HLAMBDA3 CHARACTER(LEN=4) :: HBUNAME LOGICAL :: OSUBG_COND LOGICAL :: OSIGMAS -LOGICAL :: OCND2 +LOGICAL :: OCND2 +LOGICAL :: LHGT_QS LOGICAL :: LMFCONV CHARACTER(LEN=80) :: HSUBG_MF_PDF REAL :: PTSTEP @@ -117,11 +125,10 @@ IF (LLBIND) THEN ENDIF CALL GETDATA_ICE_ADJUST (NPROMA, NGPBLKS, NFLEVG, PRHODJ, PEXNREF, PRHODREF, PPABSM, PTHT, ZICE_CLD_WGT, & -& ZSIGQSAT, PSIGS, PMFCONV, PRC_MF, PRI_MF, PCF_MF, PTHS, PRS, PSRCS, PCLDFR, PHLC_HRC, PHLC_HCF, & +& ZSIGQSAT, PSIGS, PMFCONV, PRC_MF, PRI_MF, PCF_MF, ZDUM1, ZDUM2, ZDUM3, ZDUM4, ZDUM5, PTHS, PRS, PSRCS, PCLDFR, PHLC_HRC, PHLC_HCF, & & PHLI_HRI, PHLI_HCF, ZRS, ZZZ, PRS_OUT, PSRCS_OUT, PCLDFR_OUT, PHLC_HRC_OUT, PHLC_HCF_OUT, & & PHLI_HRI_OUT, PHLI_HCF_OUT, LLVERBOSE) - KLEV = SIZE (PRS, 3) KRR = SIZE (PRS, 4) @@ -129,8 +136,26 @@ IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS +CALL RAIN_ICE_PARAM_ASSOCIATE CALL INI_CST CALL INI_NEB +CALL TURB_GOTO_MODEL(1, 1) +TURBN%LSTATNW=.FALSE. +CALL TBUCONF_ASSOCIATE +LBU_ENABLE=.FALSE. +LBUDGET_U=.FALSE. +LBUDGET_V=.FALSE. +LBUDGET_W=.FALSE. +LBUDGET_TH=.FALSE. +LBUDGET_TKE=.FALSE. +LBUDGET_RV=.FALSE. +LBUDGET_RC=.FALSE. +LBUDGET_RR=.FALSE. +LBUDGET_RI=.FALSE. +LBUDGET_RS=.FALSE. +LBUDGET_RG=.FALSE. +LBUDGET_RH=.FALSE. +LBUDGET_SV=.FALSE. ! Taken from ini_rain_ice.F90; we only need these for ice_adjust.F90 ICEP%XCRIAUTI = 0.2E-4 @@ -153,6 +178,7 @@ HBUNAME = 'DEPI' OSUBG_COND = .TRUE. OSIGMAS = .TRUE. OCND2 = .FALSE. +LHGT_QS = .FALSE. HSUBG_MF_PDF = 'TRIANGLE' PTSTEP = 50.000000000000000 LMFCONV = .TRUE. @@ -166,6 +192,9 @@ D0%NIE = NPROMA D0%NJT = 1 D0%NJB = 1 D0%NJE = 1 +D0%NIJT = D0%NIT * D0%NJT +D0%NIJB = 1 +D0%NIJE = NPROMA D0%NKL = -1 D0%NKT = KLEV D0%NKA = KLEV @@ -190,8 +219,8 @@ DO ITIME = 1, NTIME TSD = OMP_GET_WTIME () !$acc data & -!$acc & copyin (D0, CST, ICEP, NEB, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND, OSIGMAS, OCND2, HSUBG_MF_PDF, PTSTEP, LMFCONV, & -!$acc & ZSIGQSAT, PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABSM, ZZZ, PCF_MF, PRC_MF, PRI_MF, ZRS, ZICE_CLD_WGT) & +!$acc & copyin (D0, CST, ICEP, NEB, TURBN, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND, OSIGMAS, OCND2, LHGT_QS, HSUBG_MF_PDF, PTSTEP, LMFCONV, & +!$acc & ZSIGQSAT, PRHODJ, PEXNREF, PRHODREF, PSIGS, PMFCONV, PPABSM, ZZZ, PCF_MF, PRC_MF, PRI_MF, ZDUM1, ZDUM2, ZDUM3, ZDUM4, ZDUM5, ZRS, ZICE_CLD_WGT) & !$acc & copy (PRS, PTHS), & !$acc & copyout (PSRCS, PCLDFR, PHLC_HRC, PHLC_HCF, PHLI_HRI, PHLI_HCF) & !$acc & create (PSTACK) @@ -228,6 +257,8 @@ JBLK2 = (NGPBLKS * (ITID+1)) / NTID D = D0 D%NIB = JLON D%NIE = JLON + D%NIJB = JLON + D%NIJE = JLON #endif #ifdef USE_OPENMP @@ -242,18 +273,22 @@ JBLK2 = (NGPBLKS * (ITID+1)) / NTID YLSTACK%U = 0 #endif - CALL ICE_ADJUST (D, CST, ICEP, NEB, TBUCONF, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND, & - & OSIGMAS, OCND2, HSUBG_MF_PDF, PTSTEP, ZSIGQSAT (:, :, IBL), PRHODJ=PRHODJ (:, :, :, IBL), PEXNREF=PEXNREF (:, :, :, IBL), & + CALL ICE_ADJUST (D, CST, ICEP, NEB, TURBN, TBUCONF, KRR, HFRAC_ICE, HCONDENS, HLAMBDA3, HBUNAME, OSUBG_COND, & + & OSIGMAS, OCND2, LHGT_QS, HSUBG_MF_PDF, PTSTEP, ZSIGQSAT (:, :, IBL), PRHODJ=PRHODJ (:, :, :, IBL), & + & PEXNREF=PEXNREF (:, :, :, IBL), & & PRHODREF=PRHODREF (:, :, :, IBL), PSIGS=PSIGS (:, :, :, IBL), LMFCONV=LMFCONV, PMFCONV=PMFCONV (:, :, :, IBL), & & PPABST=PPABSM (:, :, :, IBL), PZZ=ZZZ (:, :, :, IBL), PEXN=PEXNREF (:, :, :, IBL), PCF_MF=PCF_MF (:, :, :, IBL), & - & PRC_MF=PRC_MF (:, :, :, IBL), PRI_MF=PRI_MF (:, :, :, IBL), PRV=ZRS(:, :, :, 1, IBL), PRC=ZRS(:, :, :, 2, IBL), & + & PRC_MF=PRC_MF (:, :, :, IBL), PRI_MF=PRI_MF (:, :, :, IBL), & + & PICLDFR=ZDUM1(:, :, :, IBL), PWCLDFR=ZDUM2(:, :, :, IBL), PSSIO=ZDUM3(:, :, :, IBL), & + & PSSIU=ZDUM4(:, :, :, IBL), PIFR=ZDUM5(:, :, :, IBL), & + & PRV=ZRS(:, :, :, 1, IBL), PRC=ZRS(:, :, :, 2, IBL), & & PRVS=PRS(:, :, :, 1, IBL), PRCS=PRS(:, :, :, 2, IBL), PTH=ZRS(:, :, :, 0, IBL), PTHS=PTHS (:, :, :, IBL), & & OCOMPUTE_SRC=.TRUE., & & PSRCS=PSRCS (:, :, :, IBL), PCLDFR=PCLDFR (:, :, :, IBL), PRR=ZRS(:, :, :, 3, IBL), PRI=ZRS(:, :, :, 4, IBL), & - & PRIS=PRS(:, :, :, 4, IBL), PRS=ZRS(:, :, :, 5, IBL), PRG=ZRS(:, :, :, 6, IBL), PHLC_HRC=PHLC_HRC(:, :, :, IBL), & - & PHLC_HCF=PHLC_HCF(:, :, :, IBL), PHLI_HRI=PHLI_HRI(:, :, :, IBL), PHLI_HCF=PHLI_HCF(:, :, :, IBL), & - & TBUDGETS=YLBUDGET, KBUDGETS=NBUDGET_RI, & - & PICE_CLD_WGT=ZICE_CLD_WGT(:, :, IBL) & + & PRIS=PRS(:, :, :, 4, IBL), PRS=ZRS(:, :, :, 5, IBL), PRG=ZRS(:, :, :, 6, IBL), TBUDGETS=YLBUDGET, KBUDGETS=NBUDGET_RI, & + & PICE_CLD_WGT=ZICE_CLD_WGT(:, :, IBL), & + & PHLC_HRC=PHLC_HRC(:, :, :, IBL), PHLC_HCF=PHLC_HCF(:, :, :, IBL), & + & PHLI_HRI=PHLI_HRI(:, :, :, IBL), PHLI_HCF=PHLI_HCF(:, :, :, IBL) & #ifdef USE_STACK & , YDSTACK=YLSTACK & #endif diff --git a/src/testprogs/rain_ice/main_rain_ice.F90 b/src/testprogs/rain_ice/main_rain_ice.F90 index 6b167802e..7dc867623 100644 --- a/src/testprogs/rain_ice/main_rain_ice.F90 +++ b/src/testprogs/rain_ice/main_rain_ice.F90 @@ -10,7 +10,7 @@ USE MODD_RAIN_ICE_PARAM, ONLY : RAIN_ICE_PARAM USE MODD_PARAM_ICE, ONLY: PARAM_ICE USE MODI_RAIN_ICE USE MODI_INI_CST -USE MODD_BUDGET, ONLY: TBUDGETDATA, NBUDGET_RH, TBUCONF +USE MODD_BUDGET!, ONLY: TBUCONF_ASSOCIATE, TBUDGETDATA, NBUDGET_RH, TBUCONF USE STACK_MOD USE OMP_LIB USE YOMHOOK, ONLY : LHOOK, DR_HOOK @@ -157,6 +157,9 @@ D0%NIE = NPROMA D0%NJT = 1 D0%NJB = 1 D0%NJE = 1 +D0%NIJT = D0%NIT * D0%NJT +D0%NIJB = 1 +D0%NIJE = NPROMA D0%NKL = -1 D0%NKT = KLEV D0%NKA = KLEV @@ -219,6 +222,8 @@ JBLK2 = (NGPBLKS * (ITID+1)) / NTID D = D0 D%NIB = JLON D%NIE = JLON + D%NIJB = JLON + D%NIJE = JLON #endif #ifdef USE_OPENMP @@ -449,6 +454,21 @@ REAL :: ZCRI0, ZTCRI0 CALL INI_CST CALL TURB_GOTO_MODEL(1,1) CALL PARAM_ICE_ASSOCIATE +CALL TBUCONF_ASSOCIATE +LBU_ENABLE=.FALSE. +LBUDGET_U=.FALSE. +LBUDGET_V=.FALSE. +LBUDGET_W=.FALSE. +LBUDGET_TH=.FALSE. +LBUDGET_TKE=.FALSE. +LBUDGET_RV=.FALSE. +LBUDGET_RC=.FALSE. +LBUDGET_RR=.FALSE. +LBUDGET_RI=.FALSE. +LBUDGET_RS=.FALSE. +LBUDGET_RG=.FALSE. +LBUDGET_RH=.FALSE. +LBUDGET_SV=.FALSE. ! 1. Set implicit default values for MODD_PARAM_ICE LWARM=LDWARM diff --git a/tools/INSTALL_pack_ial.md b/tools/INSTALL_pack_ial.md index 539958fc9..c29f2ee3b 100644 --- a/tools/INSTALL_pack_ial.md +++ b/tools/INSTALL_pack_ial.md @@ -24,6 +24,10 @@ Tools are designed and tested with TRUNK=\<git repository\>/tools/pack/ ## REFERENCE PACK CREATION +### Prerequiste +gmkpack must be installed +fypp python module must be instaled (pip3 install --user fypp) + ### Create the pack ``` @@ -32,16 +36,14 @@ cycle=48t1 or cy48t3 (after commit XXX on 22 September 2022) compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos option=xfftw on ubuntu, 2y on belenos -getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary? export GMKTMP=/dev/shm -(. berootpack) gmkpack -a -r ${cycle} -b phyex -n $version -l ${compiler} -o ${option} -p masterodb -h $TRUNK/tools/pack/ #create main pack ``` ### Populate main pack with source code ``` -cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option}/src/local +cd $TRUNK${cycle}_phyex.${version}.${compiler}.${option}/src/local if sxphynh; then wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz #only available at MF but equivalent must exist elsewhere else @@ -203,10 +205,8 @@ into: ### Compilation ``` -cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option} -#Not needed anymore: grep MPA .gmkfile/${compiler}.GMAP | sed 's/MPA/PHYEX/g' >> .gmkfile/${gmkfile} +cd $TRUNK/${cycle}_phyex.${version}.${compiler}.${option} Edition of .gmkfile/${gmkfile} to add -DREPRO48 to the MACROS_FRT variable in order to suppress bug corrections and be able to reproduce the original cy48 -#Not needed anymore: Edition of .gmkfile/${gmkfile} to suppress on ubuntu -ftree-vectorize sed -i 's/GMK_THREADS=1/GMK_THREADS=10/' ics_masterodb cleanpack -f resetpack -f @@ -220,11 +220,10 @@ version=01 compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos option=xfftw on ubuntu, 2y on belenos -getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary? commit=9ce8119430dd603d35308d8ae94cf18636157473 #exemple of commit to test against the reference pack -gmkpack -r ${cycle} -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK/tools/pack/ -u PHYEX/$commit +gmkpack -r ${cycle} -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK -u PHYEX/$commit cd $HOMEPACK/PHYEX/$commit/src/local/phyex git clone git@github.com:QuentinRodier/PHYEX.git diff --git a/tools/check_commit_ial.sh b/tools/check_commit_ial.sh index d8be003f6..c08960720 100755 --- a/tools/check_commit_ial.sh +++ b/tools/check_commit_ial.sh @@ -23,6 +23,12 @@ set -e #The small_3D_alt9 is not included in the list of available tests because it cannot be run before 21 September (commit edc3f88). +#Special pack names: +# - recompil: original source code (everything under mpa) +# - split_48t1: original 48t1 source code but with physics source code under phyex directory +# - split_48t3: same as split_48t1 but for the 48t3 cycle +# - split: symbolic link to split_48t1 (backward compatibility) + specialPack="ori split split_48t1 split_48t3 recompil" availTests="small_3D,small_3D_np2,small_3D_alt1,small_3D_alt2,small_3D_alt3,small_3D_alt4,small_3D_alt5,small_3D_alt6,small_3D_alt7" defaultTest="small_3D" diff --git a/tools/check_commit_testprogs.sh b/tools/check_commit_testprogs.sh index ceb4b57e7..e663e0550 100755 --- a/tools/check_commit_testprogs.sh +++ b/tools/check_commit_testprogs.sh @@ -9,6 +9,8 @@ set -e #ice_adjust: the ice adjust test case +#ref is commit 855b8f8 for ice_adjust, rain_ice, turb and shallow_mf + specialName="ref" availTests="ice_adjust,rain_ice" defaultTest='ALL' @@ -174,11 +176,14 @@ if [ $compilation -eq 1 ]; then if [ "$fromdir" == '' ]; then echo "Clone repository, and checkout commit $commit (using prep_code.sh)" $prep_code -c $commit $expand_options $subs src + mv src/build src/build_from_commit #We do not use the compilation system as it used to be when commiting + cp -r $PHYEXTOOLSDIR/../build src/ #We use the compilation system from the same commit as the current script else echo "Copy $fromdir" mkdir src scp -q -r $fromdir/src src/ - scp -q -r $fromdir/build src/ + #scp -q -r $fromdir/build src/ #We do not use the compilation system present with the source code + cp -r $PHYEXTOOLSDIR/../build src/ #We use the compilation system from the same commit as the current script $prep_code $expand_options $subs src fi -- GitLab