diff --git a/src/MNH/compute_frac_ice.f90 b/src/MNH/compute_frac_ice.f90 index 33d4c93608d0e2ff8f0518009b4ec33bf90e031c..037bafb2eca378cf82c6ba3c2aaf4a5180430860 100644 --- a/src/MNH/compute_frac_ice.f90 +++ b/src/MNH/compute_frac_ice.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2006-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2006-2022 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 !MNH_LIC for details. version 1. @@ -358,20 +358,26 @@ REAL, DIMENSION(:,:,:), INTENT(INOUT) :: PFRAC_ICE ! Ice fraction (1 for ice on !------------------------------------------------------------------------ ! 1. Compute FRAC_ICE ! -!$acc kernels SELECT CASE(HFRAC_ICE) CASE ('T') !using Temperature +!$acc kernels PFRAC_ICE(:,:,:) = ( XTMAXMIX - PT(:,:,:) ) / ( XTMAXMIX - XTMINMIX ) ! freezing interval +!$acc end kernels CASE ('O') !using Temperature with old formulae +!$acc kernels PFRAC_ICE(:,:,:) = ( XTT - PT(:,:,:) ) / 40. ! freezing interval +!$acc end kernels CASE ('N') !No ice +!$acc kernels PFRAC_ICE(:,:,:) = 0. +!$acc end kernels CASE ('S') !Same as previous !nothing to do CASE DEFAULT CALL PRINT_MSG(NVERB_FATAL,'GEN','COMPUTE_FRAC_ICE3D_DEVICE','invalid option') END SELECT ! +!$acc kernels PFRAC_ICE(:,:,:) = MAX( 0., MIN(1., PFRAC_ICE(:,:,:) ) ) !$acc end kernels