diff --git a/src/MNH/mnhget_surf_paramn.f90 b/src/MNH/mnhget_surf_paramn.f90 index dbe76b4f3dbc860e25b7e7818c58d12bbe408398..d909252cbcf956d91e155cde257dfaa0d2a83a23 100644 --- a/src/MNH/mnhget_surf_paramn.f90 +++ b/src/MNH/mnhget_surf_paramn.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 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 version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 surfex 2006/10/24 10:43:18 -!----------------------------------------------------------------- ! ####################### MODULE MODI_MNHGET_SURF_PARAM_n ! ####################### @@ -84,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 @@ -260,15 +256,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, & @@ -276,8 +272,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