diff --git a/src/MNH/rain_ice_nucleation.f90 b/src/MNH/rain_ice_nucleation.f90 index c5b38273f03ac6192aacb2aff0b53f8f9d240fbe..509e7ddab2a1cd9a4716fffc38c12fec384141ca 100644 --- a/src/MNH/rain_ice_nucleation.f90 +++ b/src/MNH/rain_ice_nucleation.f90 @@ -196,15 +196,21 @@ IF( INEGT >= 1 ) THEN ZZW(1:INEGT) = XNU20 * BR_EXP( XALPHA2*ZSSI(1:INEGT)-XBETA2 ) #endif END WHERE - WHERE( (ZZT(1:INEGT)<=XTT-2.0) .AND. (ZZT(1:INEGT)>=XTT-5.0) .AND. (ZSSI(1:INEGT)>0.0) ) + #ifndef MNH_BITREP + WHERE( (ZZT(1:INEGT)<=XTT-2.0) .AND. (ZZT(1:INEGT)>=XTT-5.0) .AND. (ZSSI(1:INEGT)>0.0) ) ZZW(1:INEGT) = MAX( XNU20 * EXP( -XBETA2 ),XNU10 * EXP( -XBETA1*(ZZT(1:INEGT)-XTT) ) * & - ( ZSSI(1:INEGT)/ZUSW(1:INEGT) )**XALPHA1 ) + ( ZSSI(1:INEGT)/ZUSW(1:INEGT) )**XALPHA1 ) + END WHERE #else - ZZW(1:INEGT) = MAX( XNU20 * BR_EXP( -XBETA2 ),XNU10 * BR_EXP( -XBETA1*(ZZT(1:INEGT)-XTT) ) * & - BR_POW( ZSSI(1:INEGT)/ZUSW(1:INEGT),XALPHA1 ) ) + DO CONCURRENT ( JL=1:INEGT ) + IF ( (ZZT(JL)<=XTT-2.0) .AND. (ZZT(JL)>=XTT-5.0) .AND. (ZSSI(JL)>0.0) ) THEN + ZZW(JL) = MAX( XNU20 * BR_EXP( -XBETA2 ),XNU10 * BR_EXP( -XBETA1*(ZZT(JL)-XTT) ) * & + BR_POW( ZSSI(JL)/ZUSW(JL),XALPHA1 ) ) + END IF + END DO ! CONCURRENT #endif - END WHERE + ZZW(1:INEGT) = ZZW(1:INEGT) - ZCIT(1:INEGT) ZZWMAX = MAXVAL(ZZW(1:INEGT)) !$acc end kernels