diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 6808bbc6ce0f615d2ce245b2016efe89c4c6547d..3c49a64ba711e8d9e64d3cab636709a365826c06 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -3458,7 +3458,7 @@ ELSEIF (JSV >= NSV_LIMA_BEG .AND. JSV <= NSV_LIMA_END) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'ADV_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 - IF (OPTSPLIT .AND. OCOLD .AND. ONUCL .AND. OWARM .AND. OHHONI) THEN + IF (.NOT.OPTSPLIT .AND. OCOLD .AND. ONUCL .AND. OWARM .AND. OHHONI) THEN ILAST_PROC_NBR = ILAST_PROC_NBR + 1 YWORK2(12+JSV,ILAST_PROC_NBR)= 'HONH_' IPROACTV(12+JSV,ILAST_PROC_NBR) = 1 diff --git a/src/MNH/mnhget_surf_paramn.f90 b/src/MNH/mnhget_surf_paramn.f90 index 937af0e3cee56a552c469fd360bc22fc4937b08b..ff527fcf295540f0ec92cf3c285998a33b3f0cb2 100644 --- a/src/MNH/mnhget_surf_paramn.f90 +++ b/src/MNH/mnhget_surf_paramn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2020 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. @@ -79,7 +79,8 @@ END MODULE MODI_MNHGET_SURF_PARAM_n !! S. Donier 06/2015 : bug surface aerosols !! 06/2016 (G.Delautier) phasage surfex 8 !! 01/2018 (G.Delautier) SURFEX 8.1 -!! 11/2019 C.Lac correction in the drag formula and application to building in addition to tree +! C. Lac 11/2019: correction in the drag formula and application to building in addition to tree +! P. Wautelet 11/03/2020: bugfix: add present checks before working on optional arrays !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -257,15 +258,15 @@ IF (PRESENT(PH_TREE) .OR.PRESENT(PLAI_TREE)) THEN YSURF_CUR%WM,YSURF_CUR%DUO,YSURF_CUR%DU,YSURF_CUR%UG,& YSURF_CUR%U,YSURF_CUR%USS,& 'MESONH',ILU,1,PNATURE=ZNATURE,PLAI_TREE=ZLAI,PH_TREE=ZVH) - CALL REMOVE_HALO(ZLAI,PLAI_TREE) - CALL REMOVE_HALO(ZVH,PH_TREE) + IF ( PRESENT( PLAI_TREE ) ) CALL REMOVE_HALO(ZLAI,PLAI_TREE) + IF ( PRESENT( PH_TREE ) ) CALL REMOVE_HALO(ZVH,PH_TREE) DEALLOCATE(ZVH) DEALLOCATE(ZLAI) END IF ! IF (PRESENT(PWALL_O_HOR) .OR. PRESENT(PBUILD_HEIGHT)) THEN - PBUILD_HEIGHT(:,:) = XUNDEF - PWALL_O_HOR(:,:) = XUNDEF + IF ( PRESENT ( PBUILD_HEIGHT ) ) PBUILD_HEIGHT(:,:) = XUNDEF + IF ( PRESENT ( PWALL_O_HOR ) ) PWALL_O_HOR(:,:) = XUNDEF ALLOCATE(ZBUILD_HEIGHT ( ILU )) ALLOCATE(ZWALL_O_HOR ( ILU )) CALL GET_SURF_VAR_n(YSURF_CUR%FM,YSURF_CUR%IM,YSURF_CUR%SM,YSURF_CUR%TM, & @@ -273,8 +274,8 @@ IF (PRESENT(PWALL_O_HOR) .OR. PRESENT(PBUILD_HEIGHT)) THEN YSURF_CUR%U,YSURF_CUR%USS,& 'MESONH',ILU,1,PTOWN=ZTOWN, & PWALL_O_HOR=ZWALL_O_HOR,PBUILD_HEIGHT=ZBUILD_HEIGHT ) - CALL REMOVE_HALO(ZBUILD_HEIGHT,PBUILD_HEIGHT) - CALL REMOVE_HALO(ZWALL_O_HOR,PWALL_O_HOR) + IF ( PRESENT ( PBUILD_HEIGHT ) ) CALL REMOVE_HALO(ZBUILD_HEIGHT,PBUILD_HEIGHT) + IF ( PRESENT ( PWALL_O_HOR ) ) CALL REMOVE_HALO(ZWALL_O_HOR,PWALL_O_HOR) DEALLOCATE(ZBUILD_HEIGHT) DEALLOCATE(ZWALL_O_HOR) END IF