diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index 1571bc2741f977d4f5903c3392b4fdb2767b7654..a14de1b887439c44344d059270a9d73809d13d69 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -290,9 +290,6 @@ LOGICAL,DIMENSION(SIZE(PEXNREF,1),SIZE(PEXNREF,2),SIZE(PEXNREF,3)) :: GTEMP ! !$acc declare device_resident(ZEXNS,ZT,ZCPH,ZLV,ZLS,ZW1,ZW2,ZW3,ZW4,ZW5,ZW6,ZW7,ZCND,GTEMP) ! -#ifdef _OPENACC -PRINT *,'OPENACC: ICE_ADJUST being implemented' -#endif !------------------------------------------------------------------------------- ! !* 1. PRELIMINARIES diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 87026443097eb2156b3ec7e61d049957dc6b286f..b30c13cc500b24933470b561c0d88332b8bd34d8 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -1,3 +1,4 @@ +#define NOKRR7 !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 @@ -454,29 +455,41 @@ REAL, DIMENSION(SIZE(XRTMIN)) :: ZRTMIN ! INTEGER , DIMENSION(SIZE(GMICRO)) :: I1,I2,I3 ! Used to replace the COUNT INTEGER :: JL ! and PACK intrinsics -!$acc declare create(GMICRO,GWET,GHAIL,GDEP, & -!$acc & IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3,ZW, & +!acc declare create(GMICRO,GWET,GHAIL,GDEP, & +!acc & IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3,ZW, & +!acc & ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS, & +!acc & ZWSED,ZWSEDW1,ZWSEDW2,ZCONC_TMP,ZT,ZRAY,ZLBC,ZFSEDC, & +!acc & ZRVT,ZRCT,ZRRT,ZRIT,ZRST,ZRGT,ZRHT,ZCIT, & +!acc & ZRVS,ZRCS,ZRRS,ZRIS,ZRSS,ZRGS,ZRHS,ZTHS, & +!acc & ZRHODREF, & +!acc & ZRHODJ,ZZT,ZPRES,ZZW,ZLSFACT,ZLVFACT, & +!acc & ZUSW,ZSSI,ZLBDAS,ZLBDAG,ZLBDAH, & +!acc & ZAI,ZCJ,ZKA,ZDV,ZZW1,ZRTMIN) & +!acc & device_resident(GSEDIMR,GSEDIMC,GSEDIMI,GSEDIMS,GSEDIMG,GSEDIMH, & +!acc & GNEGT,GRIM,GACC,GDRY,GWORK, & +!acc & ZCRIAUTI,ZEXNREF,ZLBDAR,ZRDRYG,ZRWETG,ZSIGMA_RC,ZCF, & +!acc & I1,I2,I3) + +!$acc data create(GMICRO,GDEP, & +!$acc & ZW, & !$acc & ZPRCS,ZPRRS,ZPRSS,ZPRGS,ZPRHS, & !$acc & ZWSED,ZWSEDW1,ZWSEDW2,ZCONC_TMP,ZT,ZRAY,ZLBC,ZFSEDC, & -!$acc & ZRVT,ZRCT,ZRRT,ZRIT,ZRST,ZRGT,ZRHT,ZCIT, & -!$acc & ZRVS,ZRCS,ZRRS,ZRIS,ZRSS,ZRGS,ZRHS,ZTHS, & -!$acc & ZRHODREF, & -!$acc & ZRHODJ,ZZT,ZPRES,ZZW,ZLSFACT,ZLVFACT, & -!$acc & ZUSW,ZSSI,ZLBDAS,ZLBDAG,ZLBDAH, & -!$acc & ZAI,ZCJ,ZKA,ZDV,ZZW1,ZRTMIN) & -!$acc & device_resident(GSEDIMR,GSEDIMC,GSEDIMI,GSEDIMS,GSEDIMG,GSEDIMH, & -!$acc & GNEGT,GRIM,GACC,GDRY,GWORK, & -!$acc & ZCRIAUTI,ZEXNREF,ZLBDAR,ZRDRYG,ZRWETG,ZSIGMA_RC,ZCF, & -!$acc & I1,I2,I3) +!$acc & ZRTMIN, & +!$acc & GSEDIMR,GSEDIMC,GSEDIMI,GSEDIMS,GSEDIMG,GSEDIMH, & +!$acc & GNEGT,I1,I2,I3) ! #ifdef _OPENACC -PRINT *,'OPENACC: RAIN_ICE being implemented' -#endif -#ifdef _OPENACC IF ( KRR == 7 ) THEN PRINT *,'OPENACC: RAIN_ICE: KRR=7 being implemented' - PRINT *,'OPENACC: RAIN_ICE: KRR=7 not yet tested' + CALL ABORT +END IF +#endif +#ifdef NOKRR7 +IF ( KRR == 7 ) THEN +!PW: warning: KRR=7 use optional arguments that are problematic +! for the PGI compiler (at least up to 17.3) + PRINT *,'OPENACC: RAIN_ICE: KRR=7 is commented out' CALL ABORT END IF #endif @@ -509,6 +522,7 @@ CALL RAIN_ICE_NUCLEATION GMICRO(:,:,:) = .FALSE. IF ( KRR == 7 ) THEN +#ifndef NOKRR7 GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) = & PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(2) .OR. & PRRT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(3) .OR. & @@ -516,6 +530,7 @@ GMICRO(:,:,:) = .FALSE. PRST(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(5) .OR. & PRGT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(6) .OR. & PRHT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(7) +#endif ELSE IF( KRR == 6 ) THEN GMICRO(IIB:IIE,IJB:IJE,IKTB:IKTE) = & PRCT(IIB:IIE,IJB:IJE,IKTB:IKTE)>XRTMIN(2) .OR. & @@ -540,7 +555,9 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(ZRIT(IMICRO)) ALLOCATE(ZRST(IMICRO)) ALLOCATE(ZRGT(IMICRO)) +#ifndef NOKRR7 IF ( KRR == 7 ) ALLOCATE(ZRHT(IMICRO)) +#endif ALLOCATE(ZCIT(IMICRO)) ALLOCATE(ZRVS(IMICRO)) ALLOCATE(ZRCS(IMICRO)) @@ -548,7 +565,9 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(ZRIS(IMICRO)) ALLOCATE(ZRSS(IMICRO)) ALLOCATE(ZRGS(IMICRO)) +#ifndef NOKRR7 IF ( KRR == 7 ) ALLOCATE(ZRHS(IMICRO)) +#endif ALLOCATE(ZTHS(IMICRO)) ALLOCATE(ZRHODREF(IMICRO)) ALLOCATE(ZZT(IMICRO)) @@ -567,7 +586,9 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(ZLBDAR(IMICRO)) ALLOCATE(ZLBDAS(IMICRO)) ALLOCATE(ZLBDAG(IMICRO)) +#ifndef NOKRR7 IF ( KRR == 7 ) ALLOCATE(ZLBDAH(IMICRO)) +#endif ALLOCATE(ZRDRYG(IMICRO)) ALLOCATE(ZRWETG(IMICRO)) ALLOCATE(ZAI(IMICRO)) @@ -577,12 +598,23 @@ IF( IMICRO >= 0 ) THEN ALLOCATE(GWORK(IMICRO)) ! IF ( KRR == 7 ) THEN +#ifndef NOKRR7 ALLOCATE(ZZW1(IMICRO,7)) +#endif ELSE IF( KRR == 6 ) THEN ALLOCATE(ZZW1(IMICRO,6)) ENDIF +!$acc data create(ZRVT,ZRCT,ZRRT,ZRIT,ZRST,ZRGT,ZRHT,ZCIT, & +!$acc & ZRVS,ZRCS,ZRRS,ZRIS,ZRSS,ZRGS,ZRHS,ZTHS, & +!$acc & ZRHODREF, & +!$acc & ZZT,ZPRES,ZZW,ZLSFACT,ZLVFACT, & +!$acc & ZUSW,ZSSI,ZLBDAS,ZLBDAG,ZLBDAH, & +!$acc & ZAI,ZCJ,ZKA,ZDV,ZZW1, & +!$acc & GWORK, & +!$acc & ZEXNREF,ZLBDAR,ZRDRYG,ZRWETG,ZSIGMA_RC,ZCF) ! !$acc kernels +!$acc loop independent DO JL=1,IMICRO ZRVT(JL) = PRVT(I1(JL),I2(JL),I3(JL)) ZRCT(JL) = PRCT(I1(JL),I2(JL),I3(JL)) @@ -606,12 +638,14 @@ IF( IMICRO >= 0 ) THEN ZEXNREF(JL) = PEXNREF(I1(JL),I2(JL),I3(JL)) ENDDO ! +#ifndef NOKRR7 IF (KRR == 7 ) THEN DO JL=1,IMICRO ZRHT(JL) = PRHT(I1(JL),I2(JL),I3(JL)) ZRHS(JL) = PRHS(I1(JL),I2(JL),I3(JL)) ENDDO ENDIF +#endif ! IF ( HSUBG_AUCV == 'SIGM') THEN DO JL=1,IMICRO @@ -694,9 +728,11 @@ IF( IMICRO >= 0 ) THEN !* 6. COMPUTES THE FAST COLD PROCESS SOURCES FOR r_h ! ---------------------------------------------- ! +#ifndef NOKRR7 IF ( KRR == 7 ) THEN CALL RAIN_ICE_FAST_RH END IF +#endif ! !------------------------------------------------------------------------------- ! @@ -724,16 +760,19 @@ IF( IMICRO >= 0 ) THEN PRSS(:,:,:) = UNPACK( ZRSS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ZW(:,:,:) = PRGS(:,:,:) PRGS(:,:,:) = UNPACK( ZRGS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) +#ifndef NOKRR7 IF ( KRR == 7 ) THEN ZW(:,:,:) = PRHS(:,:,:) PRHS(:,:,:) = UNPACK( ZRHS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) END IF +#endif ZW(:,:,:) = PTHS(:,:,:) PTHS(:,:,:) = UNPACK( ZTHS(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) ZW(:,:,:) = PCIT(:,:,:) PCIT(:,:,:) = UNPACK( ZCIT(:),MASK=GMICRO(:,:,:),FIELD=ZW(:,:,:) ) #else !$acc kernels +!$acc loop independent DO JL=1,IMICRO PRVS(I1(JL),I2(JL),I3(JL)) = ZRVS(JL) PRCS(I1(JL),I2(JL),I3(JL)) = ZRCS(JL) @@ -745,6 +784,7 @@ IF( IMICRO >= 0 ) THEN PCIT(I1(JL),I2(JL),I3(JL)) = ZCIT(JL) END DO !$acc end kernels +#ifndef NOKRR7 IF ( KRR == 7 ) THEN !$acc kernels DO JL=1,IMICRO @@ -752,10 +792,12 @@ IF( IMICRO >= 0 ) THEN END DO !$acc end kernels END IF +#endif #endif ! ! ! +!$acc end data DEALLOCATE(ZZW1) DEALLOCATE(GWORK) DEALLOCATE(ZDV) @@ -763,7 +805,9 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZRDRYG) DEALLOCATE(ZRWETG) DEALLOCATE(ZLBDAG) +#ifndef NOKRR7 IF ( KRR == 7 ) DEALLOCATE(ZLBDAH) +#endif DEALLOCATE(ZLBDAS) DEALLOCATE(ZLBDAR) DEALLOCATE(ZSSI) @@ -777,7 +821,9 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZZT) IF(LBU_ENABLE .OR. LLES_CALL) DEALLOCATE(ZRHODJ) DEALLOCATE(ZTHS) +#ifndef NOKRR7 IF ( KRR == 7 ) DEALLOCATE(ZRHS) +#endif DEALLOCATE(ZRGS) DEALLOCATE(ZRSS) DEALLOCATE(ZRIS) @@ -786,7 +832,9 @@ IF( IMICRO >= 0 ) THEN DEALLOCATE(ZRVS) DEALLOCATE(ZCIT) DEALLOCATE(ZRGT) +#ifndef NOKRR7 IF ( KRR == 7 ) DEALLOCATE(ZRHT) +#endif DEALLOCATE(ZRST) DEALLOCATE(ZRIT) DEALLOCATE(ZRRT) @@ -865,6 +913,7 @@ IF( IMICRO >= 0 ) THEN IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'GMLT_BU_RRR') IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'GMLT_BU_RRG') +#ifndef NOKRR7 IF(KRR==7) THEN ! rain_ice_fast_rh IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'WETH_BU_RTH') IF (LBUDGET_RC) CALL BUDGET (PRCS(:,:,:)*PRHODJ(:,:,:),7,'WETH_BU_RRC') @@ -879,6 +928,7 @@ IF( IMICRO >= 0 ) THEN IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8,'HMLT_BU_RRR') IF (LBUDGET_RH) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'HMLT_BU_RRH') ENDIF +#endif !rain_ice_fast_ri IF (LBUDGET_TH) CALL BUDGET (PTHS(:,:,:)*PRHODJ(:,:,:),4,'IMLT_BU_RTH') @@ -911,6 +961,7 @@ ELSE STOP END IF ! +!$acc end data ! !------------------------------------------------------------------------------- ! @@ -964,7 +1015,9 @@ PINPRR (:,:) = 0. PINPRR3D (:,:,:) = 0. PINPRS (:,:) = 0. PINPRG (:,:) = 0. +#ifndef NOKRR7 IF ( KRR == 7 ) PINPRH (:,:) = 0. +#endif !$acc end kernels ! !* 1. Parameters for cloud sedimentation @@ -1006,11 +1059,27 @@ IF ( KRR == 7 ) PINPRH (:,:) = 0. !$acc kernels ZRTMIN(:) = XRTMIN(:) * ZINVTSTEP IF (OSEDIC) GSEDIMC(:,:,:) = .FALSE. +#if 0 GSEDIMR(:,:,:) = .FALSE. GSEDIMI(:,:,:) = .FALSE. GSEDIMS(:,:,:) = .FALSE. GSEDIMG(:,:,:) = .FALSE. +#else +!$acc loop collapse(3) independent +DO JK=1,SIZE(GSEDIMR,3) + DO JJ=1,SIZE(GSEDIMR,2) + DO JI=1,SIZE(GSEDIMR,1) + GSEDIMR(JI,JJ,JK) = .FALSE. + GSEDIMI(JI,JJ,JK) = .FALSE. + GSEDIMS(JI,JJ,JK) = .FALSE. + GSEDIMG(JI,JJ,JK) = .FALSE. + END DO + END DO +END DO +#endif +#ifndef NOKRR7 IF ( KRR == 7 ) GSEDIMH(:,:,:) = .FALSE. +#endif ! ! ZPiS = Specie i source creating during the current time step ! PRiS = Source of the previous time step @@ -1019,14 +1088,47 @@ IF (OSEDIC) THEN ZPRCS(:,:,:) = PRCS(:,:,:)-PRCT(:,:,:)* ZINVTSTEP PRCS(:,:,:) = PRCT(:,:,:)* ZINVTSTEP END IF +#if 0 ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)* ZINVTSTEP ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)* ZINVTSTEP ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)* ZINVTSTEP +#ifndef NOKRR7 IF ( KRR == 7 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)* ZINVTSTEP +#endif PRRS(:,:,:) = PRRT(:,:,:)* ZINVTSTEP PRSS(:,:,:) = PRST(:,:,:)* ZINVTSTEP PRGS(:,:,:) = PRGT(:,:,:)* ZINVTSTEP +#ifndef NOKRR7 IF ( KRR == 7 ) PRHS(:,:,:) = PRHT(:,:,:)* ZINVTSTEP +#endif +#else +!$acc loop collapse(3) independent +DO JK=IKTB,IKTE + DO JJ=IJB,IJE + DO JI=IIB,IIE + ZPRRS(JI,JJ,JK) = PRRS(JI,JJ,JK)-PRRT(JI,JJ,JK)* ZINVTSTEP + ZPRSS(JI,JJ,JK) = PRSS(JI,JJ,JK)-PRST(JI,JJ,JK)* ZINVTSTEP + ZPRGS(JI,JJ,JK) = PRGS(JI,JJ,JK)-PRGT(JI,JJ,JK)* ZINVTSTEP + PRRS(JI,JJ,JK) = PRRT(JI,JJ,JK)* ZINVTSTEP + PRSS(JI,JJ,JK) = PRST(JI,JJ,JK)* ZINVTSTEP + PRGS(JI,JJ,JK) = PRGT(JI,JJ,JK)* ZINVTSTEP + END DO + END DO +END DO +#ifndef NOKRR7 +IF ( KRR == 7 ) THEN +!$acc loop collapse(3) independent + DO JK=IKTB,IKTE + DO JJ=IJB,IJE + DO JI=IIB,IIE + ZPRHS(JI,JJ,JK) = PRHS(JI,JJ,JK)-PRHT(JI,JJ,JK)* ZINVTSTEP + PRHS(JI,JJ,JK) = PRHT(JI,JJ,JK)* ZINVTSTEP + END DO + END DO + END DO +END IF +#endif +#endif !$acc end kernels ! ! PRiS = Source of the previous time step + source created during the subtime @@ -1039,7 +1141,9 @@ DO JN = 1 , KSPLITR PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:)/KSPLITR PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:)/KSPLITR PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:)/KSPLITR +#ifndef NOKRR7 IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:)/KSPLITR +#endif DO JK = IKTB , IKTE ZW(:,:,JK) =ZTSPLITR/(PRHODREF(:,:,JK)* PDZZ(:,:,JK)) END DO @@ -1048,8 +1152,11 @@ DO JN = 1 , KSPLITR PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:)*ZTSPLITR PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:)*ZTSPLITR PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:)*ZTSPLITR +#ifndef NOKRR7 IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:)*ZTSPLITR +#endif END IF +#if 0 IF (OSEDIC) GSEDIMC(IIB:IIE,IJB:IJE,IKTB:IKTE) = & PRCS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(2) GSEDIMR(IIB:IIE,IJB:IJE,IKTB:IKTE) = & @@ -1060,8 +1167,45 @@ DO JN = 1 , KSPLITR PRSS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(5) GSEDIMG(IIB:IIE,IJB:IJE,IKTB:IKTE) = & PRGS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(6) +#ifndef NOKRR7 IF ( KRR == 7 ) GSEDIMH(IIB:IIE,IJB:IJE,IKTB:IKTE) = & PRHS(IIB:IIE,IJB:IJE,IKTB:IKTE)>ZRTMIN(7) +#endif +#else + IF (OSEDIC) THEN +!$acc loop collapse(3) independent + DO JK=IKTB,IKTE + DO JJ=IJB,IJE + DO JI=IIB,IIE + GSEDIMC(JI,JJ,JK) = PRCS(JI,JJ,JK)>ZRTMIN(2) + END DO + END DO + END DO + END IF +!$acc loop collapse(3) independent + DO JK=IKTB,IKTE + DO JJ=IJB,IJE + DO JI=IIB,IIE + GSEDIMR(JI,JJ,JK) = PRRS(JI,JJ,JK)>ZRTMIN(3) + GSEDIMI(JI,JJ,JK) = PRIS(JI,JJ,JK)>ZRTMIN(4) + GSEDIMS(JI,JJ,JK) = PRSS(JI,JJ,JK)>ZRTMIN(5) + GSEDIMG(JI,JJ,JK) = PRGS(JI,JJ,JK)>ZRTMIN(6) + END DO + END DO + END DO +#ifndef NOKRR7 +IF ( KRR == 7 ) THEN +!$acc loop collapse(3) independent + DO JK=IKTB,IKTE + DO JJ=IJB,IJE + DO JI=IIB,IIE + GSEDIMH(JI,JJ,JK) = PRHS(JI,JJ,JK)>ZRTMIN(7) + END DO + END DO + END DO + END IF +#endif +#endif !$acc end kernels ! #ifndef _OPENACC @@ -1077,8 +1221,10 @@ DO JN = 1 , KSPLITR CALL COUNTJV3D_DEVICE(GSEDIMI,II1,II2,II3,ISEDIMI) CALL COUNTJV3D_DEVICE(GSEDIMS,IS1,IS2,IS3,ISEDIMS) CALL COUNTJV3D_DEVICE(GSEDIMG,IG1,IG2,IG3,ISEDIMG) +#ifndef NOKRR7 IF ( KRR == 7 ) CALL COUNTJV3D_DEVICE(GSEDIMH,IH1,IH2,IH3,ISEDIMH) #endif +#endif ! !* 2.1 for cloud ! @@ -1087,6 +1233,7 @@ DO JN = 1 , KSPLITR ZWSED(:,:,:) = 0. IF( JN==1 ) PRCS(:,:,:) = PRCS(:,:,:) * PTSTEP ! +!$acc loop independent DO JL=1,ISEDIMC ZRSLOC = PRCS(IC1(JL),IC2(JL),IC3(JL)) ZRTLOC = PRCT(IC1(JL),IC2(JL),IC3(JL)) @@ -1122,6 +1269,7 @@ DO JN = 1 , KSPLITR END IF END DO ! +!$acc loop independent DO JK = IKTB , IKTE PRCS(:,:,JK) = PRCS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) END DO @@ -1136,6 +1284,7 @@ DO JN = 1 , KSPLITR IF( JN==1 ) PRRS(:,:,:) = PRRS(:,:,:) * PTSTEP ZWSED(:,:,:) = 0. ! +!$acc loop independent DO JL=1,ISEDIMR ZRSLOC = PRRS(IR1(JL),IR2(JL),IR3(JL)) IF( ZRSLOC .GT. ZRTMIN(3) ) THEN @@ -1150,6 +1299,7 @@ DO JN = 1 , KSPLITR END IF END DO ! +!$acc loop independent DO JK = IKTB , IKTE PRRS(:,:,JK) = PRRS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) END DO @@ -1164,6 +1314,7 @@ DO JN = 1 , KSPLITR IF( JN==1 ) PRIS(:,:,:) = PRIS(:,:,:) * PTSTEP ZWSED(:,:,:) = 0. ! +!$acc loop independent DO JL=1,ISEDIMI ZRSLOC = PRIS(II1(JL),II2(JL),II3(JL)) IF( ZRSLOC .GT. MAX(ZRTMIN(4),1.0E-7 )) THEN ! limitation of the McF&H formula @@ -1182,6 +1333,7 @@ DO JN = 1 , KSPLITR END IF END DO ! +!$acc loop independent DO JK = IKTB , IKTE PRIS(:,:,JK) = PRIS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) END DO @@ -1194,6 +1346,7 @@ DO JN = 1 , KSPLITR IF( JN==1 ) PRSS(:,:,:) = PRSS(:,:,:) * PTSTEP ZWSED(:,:,:) = 0. ! +!$acc loop independent DO JL=1,ISEDIMS ZRSLOC = PRSS(IS1(JL),IS2(JL),IS3(JL)) IF( ZRSLOC .GT. ZRTMIN(5) ) THEN @@ -1208,6 +1361,7 @@ DO JN = 1 , KSPLITR END IF END DO ! +!$acc loop independent DO JK = IKTB , IKTE PRSS(:,:,JK) = PRSS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) END DO @@ -1221,6 +1375,7 @@ DO JN = 1 , KSPLITR ZWSED(:,:,:) = 0. IF( JN==1 ) PRGS(:,:,:) = PRGS(:,:,:) * PTSTEP ! +!$acc loop independent DO JL=1,ISEDIMG ZRSLOC = PRGS(IG1(JL),IG2(JL),IG3(JL)) IF( ZRSLOC .GT. ZRTMIN(6) ) THEN @@ -1235,6 +1390,7 @@ DO JN = 1 , KSPLITR END IF END DO ! +!$acc loop independent DO JK = IKTB , IKTE PRGS(:,:,JK) = PRGS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) END DO @@ -1245,10 +1401,12 @@ DO JN = 1 , KSPLITR ! !* 2.6 for hail ! +#ifndef NOKRR7 IF ( KRR == 7 ) THEN IF( JN==1 ) PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP ZWSED(:,:,:) = 0. ! +!$acc loop independent DO JL=1,ISEDIMH ZRSLOC = PRHS(IH1(JL),IH2(JL),IH3(JL)) IF( ZRSLOC .GT. ZRTMIN(7) ) THEN @@ -1263,6 +1421,7 @@ DO JN = 1 , KSPLITR END IF END DO ! +!$acc loop independent DO JK = IKTB , IKTE PRHS(:,:,JK) = PRHS(:,:,JK) + ZW(:,:,JK)*(ZWSED(:,:,JK+KKL)-ZWSED(:,:,JK)) END DO @@ -1271,6 +1430,7 @@ DO JN = 1 , KSPLITR PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP END IF END IF ! KRR==7 +#endif !$acc end kernels ! END DO @@ -1297,10 +1457,12 @@ IF (LBUDGET_RG) THEN !$acc update self(PRGS) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') END IF +#ifndef NOKRR7 IF ( KRR == 7 .AND. LBUDGET_RH) THEN !$acc update self(PRHS) CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') END IF +#endif ! ! !* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND @@ -1361,7 +1523,9 @@ PINPRR (:,:) = 0. PINPRR3D (:,:,:) = 0. PINPRS (:,:) = 0. PINPRG (:,:) = 0. +#ifndef NOKRR7 IF ( KRR == 7 ) PINPRH (:,:) = 0. +#endif ! ! !* 1. Parameters for cloud sedimentation @@ -1405,22 +1569,30 @@ END IF ZPRRS(:,:,:) = 0.0 ZPRSS(:,:,:) = 0.0 ZPRGS(:,:,:) = 0.0 +#ifndef NOKRR7 IF ( KRR == 7 ) ZPRHS(:,:,:) = 0.0 +#endif ! ZPRRS(:,:,:) = PRRS(:,:,:)-PRRT(:,:,:)* ZINVTSTEP ZPRSS(:,:,:) = PRSS(:,:,:)-PRST(:,:,:)* ZINVTSTEP ZPRGS(:,:,:) = PRGS(:,:,:)-PRGT(:,:,:)* ZINVTSTEP +#ifndef NOKRR7 IF ( KRR == 7 ) ZPRHS(:,:,:) = PRHS(:,:,:)-PRHT(:,:,:)* ZINVTSTEP +#endif PRRS(:,:,:) = PRRT(:,:,:)* ZINVTSTEP PRSS(:,:,:) = PRST(:,:,:)* ZINVTSTEP PRGS(:,:,:) = PRGT(:,:,:)* ZINVTSTEP +#ifndef NOKRR7 IF ( KRR == 7 ) PRHS(:,:,:) = PRHT(:,:,:)* ZINVTSTEP +#endif ! IF (OSEDIC) PRCS(:,:,:) = PRCS(:,:,:) + ZPRCS(:,:,:) PRRS(:,:,:) = PRRS(:,:,:) + ZPRRS(:,:,:) PRSS(:,:,:) = PRSS(:,:,:) + ZPRSS(:,:,:) PRGS(:,:,:) = PRGS(:,:,:) + ZPRGS(:,:,:) +#ifndef NOKRR7 IF ( KRR == 7 ) PRHS(:,:,:) = PRHS(:,:,:) + ZPRHS(:,:,:) +#endif DO JK = IKTB , IKTE ZW(:,:,JK) =PTSTEP/(PRHODREF(:,:,JK)* PDZZ(:,:,JK) ) END DO @@ -1772,6 +1944,7 @@ END DO ! !* 2.6 for hail ! +#ifndef NOKRR7 IF ( KRR == 7 ) THEN PRHS(:,:,:) = PRHS(:,:,:) * PTSTEP ZWSED(:,:,:) = 0. @@ -1831,6 +2004,7 @@ END DO PRHS(:,:,:) = PRHS(:,:,:) * ZINVTSTEP ENDIF +#endif ! ! @@ -1842,9 +2016,10 @@ IF (LBUDGET_RR) CALL BUDGET (PRRS(:,:,:)*PRHODJ(:,:,:),8 ,'SEDI_BU_RRR') IF (LBUDGET_RI) CALL BUDGET (PRIS(:,:,:)*PRHODJ(:,:,:),9 ,'SEDI_BU_RRI') IF (LBUDGET_RS) CALL BUDGET (PRSS(:,:,:)*PRHODJ(:,:,:),10,'SEDI_BU_RRS') IF (LBUDGET_RG) CALL BUDGET (PRGS(:,:,:)*PRHODJ(:,:,:),11,'SEDI_BU_RRG') +#ifndef NOKRR7 IF ( KRR == 7 .AND. LBUDGET_RH) & CALL BUDGET (PRHS(:,:,:)*PRHODJ(:,:,:),12,'SEDI_BU_RRH') - +#endif ! ! !* 2.4 DROPLET DEPOSITION AT THE 1ST LEVEL ABOVE GROUND @@ -1900,7 +2075,18 @@ ZT(:,:,:) = PTHT(:,:,:) * BR_POW(PPABST(:,:,:)/XP00,XRD/XCPD) ! the temperature is negative only !!! ! GNEGT(:,:,:) = .FALSE. +#if 0 GNEGT(IIB:IIE,IJB:IJE,IKTB:IKTE) = ZT(IIB:IIE,IJB:IJE,IKTB:IKTE)<XTT +#else +!$acc loop collapse(3) independent +DO JK=IKTB,IKTE + DO JJ=IJB,IJE + DO JI=IIB,IIE + GNEGT(JI,JJ,JK) = ZT(JI,JJ,JK)<XTT + END DO + END DO +END DO +#endif !$acc end kernels #ifndef _OPENACC INEGT = COUNTJV3D( GNEGT(:,:,:),I1(:),I2(:),I3(:)) @@ -1979,9 +2165,11 @@ IF( INEGT >= 1 ) THEN PRIS(:,:,:) = PRIS(:,:,:) + ZW(:,:,:) PRVS(:,:,:) = PRVS(:,:,:) - ZW(:,:,:) IF ( KRR == 7 ) THEN +#ifndef NOKRR7 PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(XLSTT+(XCPV-XCI)*(ZT(:,:,:)-XTT)) & /( (XCPD + XCPV*PRVT(:,:,:) + XCL*(PRCT(:,:,:)+PRRT(:,:,:)) & + XCI*(PRIT(:,:,:)+PRST(:,:,:)+PRGT(:,:,:)+PRHT(:,:,:)))*PEXNREF(:,:,:) ) +#endif ELSE IF( KRR == 6 ) THEN PTHS(:,:,:) = PTHS(:,:,:) + ZW(:,:,:)*(XLSTT+(XCPV-XCI)*(ZT(:,:,:)-XTT)) & /( (XCPD + XCPV*PRVT(:,:,:) + XCL*(PRCT(:,:,:)+PRRT(:,:,:)) & @@ -2413,6 +2601,7 @@ REAL :: ZCRIAUTC ! Critical cloud mixing ratio PEVAP3D(:,:,:)=UNPACK(ZZW(:),MASK=GMICRO(:,:,:),FIELD=0.0) #else !$acc kernels +!$acc loop independent DO JL=1,IMICRO PEVAP3D(I1(JL),I2(JL),I3(JL)) = ZZW(JL) END DO @@ -2442,6 +2631,7 @@ REAL,DIMENSION(SIZE(ZZW1,1)) :: ZTMP ! ALLOCATE(GRIM(IMICRO)) ALLOCATE(I1(IMICRO)) !I1 is bigger than necessary but it easier to do it now (instead of computing IGRIM before allocating I1) +!$acc data create(GRIM) ! !$acc kernels ZZW1(:,:) = 0.0 @@ -2463,6 +2653,7 @@ REAL,DIMENSION(SIZE(ZZW1,1)) :: ZTMP ALLOCATE(ZVEC2(IGRIM)) ALLOCATE(IVEC1(IGRIM)) ALLOCATE(IVEC2(IGRIM)) +!$acc data create(IVEC1,IVEC2,ZVEC1,ZVEC2) ! ! 5.1.1 select the ZLBDAS ! @@ -2568,6 +2759,7 @@ REAL,DIMENSION(SIZE(ZZW1,1)) :: ZTMP ZTHS(:) = ZTHS(:) + ZZW1(:,2)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCRIMSG)) END WHERE !$acc end kernels +!$acc end data DEALLOCATE(IVEC2) DEALLOCATE(IVEC1) DEALLOCATE(ZVEC2) @@ -2589,11 +2781,13 @@ REAL,DIMENSION(SIZE(ZZW1,1)) :: ZTMP !$acc update self(ZRGS) CALL BUDGET (UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), 11,'RIM_BU_RRG') END IF +!$acc end data DEALLOCATE(GRIM) ! !* 5.2 rain accretion onto the aggregates ! ALLOCATE(GACC(IMICRO)) +!$acc data create(GACC) !$acc kernels ZZW1(:,2:3) = 0.0 GACC(:) = (ZRRT(:)>XRTMIN(3)) .AND. (ZRST(:)>XRTMIN(5)) .AND. & @@ -2614,6 +2808,7 @@ REAL,DIMENSION(SIZE(ZZW1,1)) :: ZTMP ALLOCATE(ZVEC3(IGACC)) ALLOCATE(IVEC1(IGACC)) ALLOCATE(IVEC2(IGACC)) +!$acc data create(IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3) ! ! 5.2.1 select the (ZLBDAS,ZLBDAR) couplet ! @@ -2774,12 +2969,14 @@ END DO ! f(L_f*(RRACCSG)) END WHERE !$acc end kernels +!$acc end data DEALLOCATE(IVEC2) DEALLOCATE(IVEC1) DEALLOCATE(ZVEC3) DEALLOCATE(ZVEC2) DEALLOCATE(ZVEC1) END IF +!$acc end data DEALLOCATE(GACC) DEALLOCATE(I1) IF (LBUDGET_TH) THEN @@ -2859,11 +3056,12 @@ IMPLICIT NONE ! INTEGER :: JL INTEGER,DIMENSION(:),ALLOCATABLE :: I1 -!$acc declare device_resident(I1) +!acc declare device_resident(I1) ! !------------------------------------------------------------------------------- ALLOCATE(GDRY(IMICRO)) ALLOCATE(I1(IMICRO)) !I1 is bigger than necessary but it easier to do it now (instead of computing IGDRY before allocating I1) +!$acc data create(GDRY,I1) ! !* 6.1 rain contact freezing ! @@ -2913,7 +3111,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ! !* 6.2 compute the Dry growth case ! -!$acc kernels copyin(XRTMIN) default(none) & +!$acc kernels copyin(XRTMIN) & !$acc & present(ZZW1,GWORK,ZRGT,ZRCT,ZRCS,ZRIT,ZRIS,ZLBDAG,ZRHODREF,ZZW) ZZW1(:,:) = 0.0 GWORK(:) = (ZRGT(:)>XRTMIN(6)) .AND. ((ZRCT(:)>XRTMIN(2) .AND. ZRCS(:)>0.0)) @@ -2957,6 +3155,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ALLOCATE(ZVEC3(IGDRY)) ALLOCATE(IVEC1(IGDRY)) ALLOCATE(IVEC2(IGDRY)) +!$acc data create(IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3) ! !* 6.2.3 select the (ZLBDAG,ZLBDAS) couplet ! @@ -3034,6 +3233,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 #endif END WHERE !$acc end kernels +!$acc end data DEALLOCATE(IVEC2) DEALLOCATE(IVEC1) DEALLOCATE(ZVEC3) @@ -3043,7 +3243,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ! !* 6.2.6 accretion of raindrops on the graupeln ! -!$acc kernels +!$acc kernels present(GDRY) GDRY(:) = (ZRRT(:)>XRTMIN(3)) .AND. (ZRGT(:)>XRTMIN(6)) .AND. (ZRRS(:)>0.0) !$acc end kernels #ifndef _OPENACC @@ -3061,6 +3261,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ALLOCATE(ZVEC3(IGDRY)) ALLOCATE(IVEC1(IGDRY)) ALLOCATE(IVEC2(IGDRY)) +!$acc data create(IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3) ! !* 6.2.8 select the (ZLBDAG,ZLBDAR) couplet ! @@ -3136,6 +3337,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 #endif END WHERE !$acc end kernels +!$acc end data DEALLOCATE(IVEC2) DEALLOCATE(IVEC1) DEALLOCATE(ZVEC3) @@ -3143,7 +3345,9 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 DEALLOCATE(ZVEC1) END IF ! +!$acc end data DEALLOCATE(GDRY) + DEALLOCATE(I1) ! !$acc kernels copyin(XRTMIN,XEX0DEPG,XEX1DEPG) & !$acc & present(ZZW,ZRWETG,ZRGT,ZZW1,ZRIS,ZRSS,ZRVT,ZZT,ZPRES,ZKA,ZDV,ZLBDAG,ZCJ) @@ -3194,6 +3398,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ! ZZW(:) = 0.0 IF ( KRR == 7 ) THEN +#ifndef NOKRR7 GWORK(:) = ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT .AND. & ! Wet ZRDRYG(:)>=ZRWETG(:) .AND. ZRWETG(:)>0.0 ! case WHERE( GWORK(:) ) @@ -3222,6 +3427,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ZTHS(:) = ZTHS(:) + ZZW1(:,7)*(ZLSFACT(:)-ZLVFACT(:)) ! f(L_f*(RCWETG+RRWETG)) END WHERE +#endif ELSE IF( KRR == 6 ) THEN GWORK(:) = ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT .AND. & ! Wet ZRDRYG(:)>=ZRWETG(:) .AND. ZRWETG(:)>0.0 ! case @@ -3262,13 +3468,14 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 !$acc update self(ZRGS) CALL BUDGET (UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), 11,'WETG_BU_RRG') END IF +#ifndef NOKRR7 IF ( KRR == 7 ) THEN IF (LBUDGET_RH) THEN !$acc update self(ZRHS) CALL BUDGET(UNPACK(ZRHS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), 12,'WETG_BU_RRH') END IF END IF - +#endif ! !$acc kernels GWORK(:) = ZRGT(:)>XRTMIN(6) .AND. ZZT(:)<XTT .AND. & @@ -3315,7 +3522,7 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 ! !* 6.5 Melting of the graupeln ! -!$acc kernels default(none) copyin(XRTMIN,XEX0DEPG,XEX1DEPG) & +!$acc kernels copyin(XRTMIN,XEX0DEPG,XEX1DEPG) & !$acc & present(ZZW,ZRRS,ZRGT,ZTHS,ZRGS,ZZW1,ZRVT,ZZT,ZPRES,ZKA,ZDV,ZLBDAG,ZCJ,ZLSFACT,ZLVFACT) ZZW(:) = 0.0 GWORK(:) = (ZRGT(:)>XRTMIN(6)) .AND. (ZRGS(:)>0.0) .AND. (ZZT(:)>XTT) @@ -3360,13 +3567,13 @@ INTEGER,DIMENSION(:),ALLOCATABLE :: I1 CALL BUDGET (UNPACK(ZRGS(:)*ZRHODJ(:),MASK=GMICRO(:,:,:),FIELD=0.0), 11,'GMLT_BU_RRG') END IF ! - DEALLOCATE(I1) ! END SUBROUTINE RAIN_ICE_FAST_RG ! !------------------------------------------------------------------------------- ! ! +#ifndef NOKRR7 SUBROUTINE RAIN_ICE_FAST_RH ! !* 0. DECLARATIONS @@ -3417,6 +3624,7 @@ CALL ABORT ALLOCATE(ZVEC3(IGWET)) ALLOCATE(IVEC1(IGWET)) ALLOCATE(IVEC2(IGWET)) +!$acc data create(IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3) ! !* 7.2.3 select the (ZLBDAH,ZLBDAS) couplet ! @@ -3466,6 +3674,7 @@ CALL ABORT XLBSWETH2/( ZLBDAH(:) * ZLBDAS(:) ) + & XLBSWETH3/( ZLBDAS(:)**2) ) ) END WHERE +!$acc end data DEALLOCATE(IVEC2) DEALLOCATE(IVEC1) DEALLOCATE(ZVEC3) @@ -3487,6 +3696,7 @@ CALL ABORT ALLOCATE(ZVEC3(IGWET)) ALLOCATE(IVEC1(IGWET)) ALLOCATE(IVEC2(IGWET)) +!$acc data create(IVEC1,IVEC2,ZVEC1,ZVEC2,ZVEC3) ! !* 7.2.8 select the (ZLBDAH,ZLBDAG) couplet ! @@ -3536,6 +3746,7 @@ CALL ABORT XLBGWETH2/( ZLBDAH(:) * ZLBDAG(:) ) + & XLBGWETH3/( ZLBDAG(:)**2) ) ),0. ) END WHERE +!$acc end data DEALLOCATE(IVEC2) DEALLOCATE(IVEC1) DEALLOCATE(ZVEC3) @@ -3680,6 +3891,7 @@ IF (LBUDGET_RH) CALL BUDGET ( & 12,'HMLT_BU_RRH') ! END SUBROUTINE RAIN_ICE_FAST_RH +#endif ! !------------------------------------------------------------------------------- ! @@ -3806,20 +4018,24 @@ INTEGER, INTENT(OUT) :: IC ! Count ! !* 0.2 declaration of local variables ! -INTEGER :: JI,JJ,JK +INTEGER :: JI,JJ,JK,IDX ! !------------------------------------------------------------------------------- ! !$acc kernels IC = 0 +!$acc loop collapse(3) private(IDX) independent DO JK = 1,SIZE(LTAB,3) DO JJ = 1,SIZE(LTAB,2) DO JI = 1,SIZE(LTAB,1) IF( LTAB(JI,JJ,JK) ) THEN +!$acc atomic capture IC = IC +1 - I1(IC) = JI - I2(IC) = JJ - I3(IC) = JK + IDX = IC +!$acc end atomic + I1(IDX) = JI + I2(IDX) = JJ + I3(IDX) = JK END IF END DO END DO @@ -3877,18 +4093,22 @@ INTEGER, INTENT(OUT) :: IC ! Count ! !* 0.2 declaration of local variables ! -INTEGER :: JI,JJ +INTEGER :: JI,JJ,IDX ! !------------------------------------------------------------------------------- ! !$acc kernels IC = 0 +!$acc loop collapse(2) private(IDX) independent DO JJ = 1,SIZE(LTAB,2) DO JI = 1,SIZE(LTAB,1) IF( LTAB(JI,JJ) ) THEN +!$acc atomic capture IC = IC +1 - I1(IC) = JI - I2(IC) = JJ + IDX = IC +!$acc end atomic + I1(IDX) = JI + I2(IDX) = JJ END IF END DO END DO @@ -3942,16 +4162,20 @@ INTEGER, INTENT(OUT) :: IC ! Count ! !* 0.2 declaration of local variables ! -INTEGER :: JI +INTEGER :: JI,IDX ! !------------------------------------------------------------------------------- ! !$acc kernels IC = 0 +!$acc loop private(IDX) independent DO JI = 1,SIZE(LTAB,1) IF( LTAB(JI) ) THEN +!$acc atomic capture IC = IC +1 - I1(IC) = JI + IDX = IC +!$acc end atomic + I1(IDX) = JI END IF END DO !$acc end kernels diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 99d742e83b0909aa0aff31e5130234e720463d5c..b743ca0f94428f8ac45d7ea6d9e1786a7b3568dc 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -1026,9 +1026,6 @@ CALL ABORT END IF ! CASE ('ICE3') -#ifdef _OPENACC -PRINT *,'OPENACC: RESOLVED_CLOUD::ICE3 being implemented' -#endif ! !* 9. MIXED-PHASE MICROPHYSICAL SCHEME (WITH 3 ICE SPECIES) ! -----------------------------------------------------