From 4a8cc9786018ed63c72ed5dcda6dfbea1ae71f98 Mon Sep 17 00:00:00 2001 From: RIETTE Sebastien Date: Wed, 22 May 2024 10:01:25 +0000 Subject: [PATCH] BF for single precision --- src/common/micro/rain_ice_old.F90 | 19 +++++++++---------- src/testprogs/rain_ice/main_rain_ice.F90 | 7 +++---- .../rain_ice_old/main_rain_ice_old.F90 | 7 +++---- src/testprogs/shallow/main_shallow.F90 | 4 +++- src/testprogs/turb_mnh/main_turb.F90 | 4 +++- 5 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/common/micro/rain_ice_old.F90 b/src/common/micro/rain_ice_old.F90 index 797fa040..bf8be77d 100644 --- a/src/common/micro/rain_ice_old.F90 +++ b/src/common/micro/rain_ice_old.F90 @@ -14,7 +14,6 @@ SUBROUTINE RAIN_ICE_OLD (D, CST, PARAMI, ICEP, ICED, BUCONF, TLES, PICENU, PKGN_ACON, PKGN_SBGR, & PRHT, PRHS, PINPRH, PFPR) - USE PARKIND1, ONLY: JPRB USE YOMHOOK, ONLY: LHOOK, DR_HOOK, JPHOOK USE MODD_DIMPHYEX, ONLY: DIMPHYEX_T USE MODD_CST, ONLY: CST_T @@ -574,7 +573,7 @@ SUBROUTINE RAIN_ICE_OLD (D, CST, PARAMI, ICEP, ICED, BUCONF, TLES, ZCOLF(JL)=1. ! No change from orignal when OCND2 = .FALSE. ZACRF(JL)=1. ! " " " " " ZCONCM(JL)=ZCONC3D(I1(JL),I2(JL))*0.000001 ! From m-3 to cm-3 - IF (LTIW) ZTIW(JL)=TIWMX_TAB(CST, ICEP%TIWMX, ZPRES(JL),ZZT(JL), ZRVS(JL)*PTSTEP,0._JPRB,ZRSP,ZRSW,0.1_JPRB) + IF (LTIW) ZTIW(JL)=TIWMX_TAB(CST, ICEP%TIWMX, ZPRES(JL),ZZT(JL), ZRVS(JL)*PTSTEP,0.,ZRSP,ZRSW,0.1) ZZKGN_ACON(JL)=PKGN_ACON(I1(JL)) ZZKGN_SBGR(JL)=PKGN_SBGR(I1(JL)) @@ -982,33 +981,33 @@ SUBROUTINE RAIN_ICE_OLD (D, CST, PARAMI, ICEP, ICED, BUCONF, TLES, ZRSTS=ZRIT(JL)+ZRST(JL) +ZRGT(JL) ! total solid timestep t IF(ZZT(JL) 1.0E-12 .AND. & & ZESI(JL) < ZPRES(JL)*0.5 )THEN - ZTSP = TIWMX_TAB(CST, ICEP%TIWMX, ZPRES(JL),ZZT(JL), ZRVS(JL)*PTSTEP,1._JPRB,ZRSP,ZRSI,0.1_JPRB) + ZTSP = TIWMX_TAB(CST, ICEP%TIWMX, ZPRES(JL),ZZT(JL), ZRVS(JL)*PTSTEP,1.,ZRSP,ZRSI,0.1) ZRVSOLD =ZRVS(JL) ZRISOLD =ZRIS(JL) ZRSSOLD =ZRSS(JL) ZRGSOLD =ZRGS(JL) ! Fractions of total solid for cloud ice, snow and graupel ! (hail not concidered yet): - ZRISFRC = 1._JPRB !(Default) - ZRSSFRC = 0._JPRB !(Default) - ZRGSFRC = 0._JPRB !(Default) - IF(ZRSA > 0._JPRB )THEN + ZRISFRC = 1. !(Default) + ZRSSFRC = 0. !(Default) + ZRGSFRC = 0. !(Default) + IF(ZRSA > 0. )THEN ZRISFRC = ZRISOLD/ZRSA ZRSSFRC = ZRSSOLD/ZRSA ZRGSFRC = ZRGSOLD/ZRSA ENDIF - ZRSDIF =0._JPRB + ZRSDIF =0. ZRFRAC= ZRVS(JL)*PTSTEP - ZRSA*PTSTEP +ZRSTS IF(ZRVS(JL)*PTSTEP < ZRSI )THEN ! sub - saturation over ice: ! Avoid drying of ice leading to supersaturation with ! respect to ice ! ZRFRAC should not exceed ZRSP, if so adjust - ZRSDIF = MIN(0._JPRB,ZRSP-ZRFRAC) + ZRSDIF = MIN(0.,ZRSP-ZRFRAC) ELSE ! super - saturation over ice: ! ZRFRAC should not go below ZRSP, if so adjust -! ZRSDIF = MAX(0._JPRB,ZRSP-ZRFRAC) +! ZRSDIF = MAX(0.,ZRSP-ZRFRAC) ENDIF ZRSB = ZRSA*PTSTEP - ZRSDIF ZRVS(JL) = ZRVS(JL) - (ZRSB/PTSTEP-ZRSA) ! total H2O should not change diff --git a/src/testprogs/rain_ice/main_rain_ice.F90 b/src/testprogs/rain_ice/main_rain_ice.F90 index 6904f9ca..a37c6ffb 100644 --- a/src/testprogs/rain_ice/main_rain_ice.F90 +++ b/src/testprogs/rain_ice/main_rain_ice.F90 @@ -137,12 +137,11 @@ PROGRAM MAIN_RAIN_ICE D0%NKTE = KLEV ISTSZ=0 -ISTSZ(KIND(LLMICRO)/4) = NPROMA * 3 * KLEV -ISTSZ(KIND(PRHODJ)/4) = NPROMA * 30 * KLEV +ISTSZ(KIND(LLMICRO)/4) = NPROMA * 3 * KLEV +ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) + NPROMA * 30 * KLEV #ifdef USE_STACK #if defined(USE_COLCALL) && defined(_OPENACC) -ISTSZ(KIND(LLMICRO)/4) = ISTSZ(KIND(LLMICRO)/4) * NPROMA -ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) * NPROMA +ISTSZ(:) = ISTSZ(:) * NPROMA #endif #else ISTSZ(2) = ISTSZ(2) + CEILING(ISTSZ(1) / 2.) diff --git a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 b/src/testprogs/rain_ice_old/main_rain_ice_old.F90 index ceb9db7a..e479e3de 100644 --- a/src/testprogs/rain_ice_old/main_rain_ice_old.F90 +++ b/src/testprogs/rain_ice_old/main_rain_ice_old.F90 @@ -201,12 +201,11 @@ PROGRAM MAIN_RAIN_ICE_OLD D0%NKTE = KLEV ISTSZ=0 -ISTSZ(KIND(LLMICRO)/4) = NPROMA * 3 * KLEV -ISTSZ(KIND(PRHODJ)/4) = NPROMA * 22 * KLEV +ISTSZ(KIND(LLMICRO)/4) = NPROMA * 3 * KLEV +ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) + NPROMA * 22 * KLEV #ifdef USE_STACK #if defined(USE_COLCALL) && defined(_OPENACC) -ISTSZ(KIND(LLMICRO)/4) = ISTSZ(KIND(LLMICRO)/4) * NPROMA -ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) * NPROMA +ISTSZ(:) = ISTSZ(:) * NPROMA #endif #else ISTSZ(2) = ISTSZ(2) + CEILING(ISTSZ(1) / 2.) diff --git a/src/testprogs/shallow/main_shallow.F90 b/src/testprogs/shallow/main_shallow.F90 index 6d95a493..f74065a5 100644 --- a/src/testprogs/shallow/main_shallow.F90 +++ b/src/testprogs/shallow/main_shallow.F90 @@ -181,6 +181,8 @@ PROGRAM MAIN_SHALLOW &PTHV_UP_OUT, PW_UP_OUT, & &PFRAC_UP_OUT, PEMF_OUT, ZDETR_OUT, ZENTR_OUT, IKLCL_OUT, IKETL_OUT, IKCTL_OUT, LLVERBOSE) +KLEV=SIZE(PRHODREF, 2) + IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS @@ -211,7 +213,7 @@ PROGRAM MAIN_SHALLOW ISTSZ=0 ISTSZ(KIND(IKLCL)/4) = NPROMA * 2 * KLEV -ISTSZ(KIND(PRHODJ)/4) = NPROMA * 39 * KLEV +ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) + NPROMA * 39 * KLEV ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) + NPROMA * 16 !for ZBUF(KLON,16) #ifndef USE_STACK ISTSZ(2) = ISTSZ(2) + CEILING(ISTSZ(1) / 2.) diff --git a/src/testprogs/turb_mnh/main_turb.F90 b/src/testprogs/turb_mnh/main_turb.F90 index 22e7b3ba..aee83eb9 100644 --- a/src/testprogs/turb_mnh/main_turb.F90 +++ b/src/testprogs/turb_mnh/main_turb.F90 @@ -197,6 +197,8 @@ PROGRAM MAIN_TURB &PDRUS_TURB_OUT, PDRVS_TURB_OUT, & &PDRTHLS_TURB_OUT, PDRRTS_TURB_OUT, ZDRSVS_TURB_OUT, LLVERBOSE) +KLEV=SIZE(PRHODJ, 2) + IF (LLVERBOSE) PRINT *, " KLEV = ", KLEV, " KRR = ", KRR PRINT *, " NPROMA = ", NPROMA, " KLEV = ", KLEV, " NGPBLKS = ", NGPBLKS @@ -228,7 +230,7 @@ PROGRAM MAIN_TURB ISTSZ=0 ISTSZ(KIND(KLEV)/4) = NPROMA * 1 * KLEV -ISTSZ(KIND(PRHODJ)/4) = NPROMA * 91 * KLEV +ISTSZ(KIND(PRHODJ)/4) = ISTSZ(KIND(PRHODJ)/4) + NPROMA * 91 * KLEV #ifndef USE_STACK ISTSZ(2) = ISTSZ(2) + CEILING(ISTSZ(1) / 2.) ISTSZ(1) = 0