diff --git a/docs/TODO b/docs/TODO index 86a37262d3e0dd2035b7f89f1fdb81e4808c376d..47f5ed5a809d0d192f19fd50270d41c3d860ac8b 100644 --- a/docs/TODO +++ b/docs/TODO @@ -47,11 +47,8 @@ Pb identifiés à corriger plus tard: - les options CMF_CLOUD='STAT' et LOSIGAMS=.FALSE. semblent cassées en 48 original - arome/ini_cmfshall devrait s'appeler ini_param_mfshall - th_r_from_thl_rt appelée partout, il faudrait limiter à OTEST - - la recompilation complète d'AROME n'est pas testée - - il faudrait inclure un cas test plus conséquent en taille au moins sur belenos - doute sur le codage de MODD_PRECISION - appel à abort à travers print_msg non testé - - lignes vides ajoutées après les macros mnh_expand - indentation inorrecte dans les blocs mnh_expand - sedimentation momentum non branchée (et à trasformer comme sedim_stat) - si possible, modifier ice4_sedimentation_split* dans le même esprit que stat diff --git a/src/common/micro/mode_ice4_compute_pdf.F90 b/src/common/micro/mode_ice4_compute_pdf.F90 index 28785f1dfa5bce99f8626fa122de6d152b3d3e06..b1d379c55a85bb75c1d6b7cae2d40e87caca3a10 100644 --- a/src/common/micro/mode_ice4_compute_pdf.F90 +++ b/src/common/micro/mode_ice4_compute_pdf.F90 @@ -265,15 +265,6 @@ ENDIF !$mnh_end_expand_where(JI=1:KSIZE) IF(HSUBG_AUCV_RI=='NONE') THEN !$mnh_expand_where(JI=1:KSIZE) -!La raison de la non reproduction n'est pas comprise avec certitude -!Il faudra vérifier que le code fait toujours ce qui est attendu -!une fois tous les éléments assemblés -#ifdef REPRO48 - PHLI_HCF(:)=1. - PHLI_LCF(:)=0. - PHLI_HRI(:)=PRIT(:) - PHLI_LRI(:)=0. -#else !Cloud water is entirely in low or high part WHERE(PRIT(:)>ZCRIAUTI(:)) PHLI_HCF(:)=1. @@ -291,7 +282,6 @@ IF(HSUBG_AUCV_RI=='NONE') THEN PHLI_HRI(:)=0. PHLI_LRI(:)=0. END WHERE -#endif !$mnh_end_expand_where(JI=1:KSIZE) ELSEIF(HSUBG_AUCV_RI=='CLFR') THEN !Cloud water is only in the cloudy part and entirely in low or high part diff --git a/src/common/micro/mode_ice4_slow.F90 b/src/common/micro/mode_ice4_slow.F90 index 1d0d2596683e336223b69a24644a1f86ef6196dd..777f8004a282edcb9f3fa398d01edd8298abb020 100644 --- a/src/common/micro/mode_ice4_slow.F90 +++ b/src/common/micro/mode_ice4_slow.F90 @@ -143,13 +143,18 @@ ENDDO !* 3.4.5 compute the autoconversion of r_i for r_s production: RIAUTS ! DO JL=1, KSIZE - IF(PHLI_HRI(JL)>ICED%XRTMIN(4) .AND. PHLI_HCF(JL)>1.E-20 .AND. LDCOMPUTE(JL)) THEN +#ifdef REPRO48 + !This was wrong because, with this formulation and in the LDSOFT case, PRIAUTS + !was not set to 0 when ri is inferior to the autoconversion threshold + IF(PRIT(JL)>ICED%XRTMIN(4) .AND. LDCOMPUTE(JL)) THEN +#else + IF(PHLI_HRI(JL)>ICED%XRTMIN(4) .AND. LDCOMPUTE(JL)) THEN +#endif IF(.NOT. LDSOFT) THEN !ZCRIAUTI(:)=MIN(ICEP%XCRIAUTI,10**(0.06*(PT(:)-CST%XTT)-3.5)) ZCRIAUTI(JL)=MIN(ICEP%XCRIAUTI,10**(ICEP%XACRIAUTI*(PT(JL)-CST%XTT)+ICEP%XBCRIAUTI)) PRIAUTS(JL) = ICEP%XTIMAUTI * EXP( ICEP%XTEXAUTI*(PT(JL)-CST%XTT) ) & - * MAX( PHLI_HRI(JL)/PHLI_HCF(JL)-ZCRIAUTI(JL),0.0 ) - PRIAUTS(JL) = PHLI_HCF(JL)*PRIAUTS(JL) + * MAX(PHLI_HRI(JL)-ZCRIAUTI(JL)*PHLI_HCF(JL), 0.) ENDIF ELSE PRIAUTS(JL) = 0.