From 4d946e6e89f3a60e2cdb0792243964ba255db655 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 15 Feb 2019 11:17:15 +0100 Subject: [PATCH] Philippe 15/02/2019: SURFEX: bugfix: allocate ZSTRESS only when its size has a meaning --- src/SURFEX/convert_patch_isba.F90 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/SURFEX/convert_patch_isba.F90 b/src/SURFEX/convert_patch_isba.F90 index 0ad47ed03..cad666663 100644 --- a/src/SURFEX/convert_patch_isba.F90 +++ b/src/SURFEX/convert_patch_isba.F90 @@ -1,6 +1,6 @@ -!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!SFX_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence -!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !SFX_LIC for details. version 1. ! ######### SUBROUTINE CONVERT_PATCH_ISBA (DTCO, DTV, IO, KDEC, KDEC2, PCOVER, OCOVER,& @@ -45,7 +45,8 @@ !! albedo, UV albedo not defined (conserv nrj when !! coupled to atmosphere) !! P Samuelsson 10/2014 MEB -!! +! P. Wautelet 15/02/2019: bugfix: allocate ZSTRESS only when its size has a meaning +! !---------------------------------------------------------------------------- ! !* 0. DECLARATION @@ -671,13 +672,14 @@ SUBROUTINE SET_STRESS IMPLICIT NONE ! REAL, DIMENSION(PK%NSIZE_P) :: ZWORK -REAL, DIMENSION(SIZE(DTV%LPAR_STRESS,1),NVEGTYPE) :: ZSTRESS +REAL, DIMENSION(:,:), ALLOCATABLE :: ZSTRESS INTEGER :: JI REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('CONVERT_PATCH_ISBA:SET_STRESS',0,ZHOOK_HANDLE) ! IF (GDATA .AND. ANY(DTV%LDATA_STRESS)) THEN + ALLOCATE( ZSTRESS( SIZE(DTV%LPAR_STRESS,1),NVEGTYPE ) ) ZSTRESS(:,:)=0. DO JVEG=1,NVEGTYPE DO JI = 1,PK%NSIZE_P @@ -686,6 +688,7 @@ IF (GDATA .AND. ANY(DTV%LDATA_STRESS)) THEN ENDDO CALL AV_PGD_PARAM(DTV%XPAR_LAI, DTV%XPAR_VEG, & ZWORK,DTV%XPAR_VEGTYPE,ZSTRESS,YVEG,'ARI',PK%NR_P,IO%NPATCH,KPATCH,KDECADE=KDEC2) + DEALLOCATE( ZSTRESS ) ELSE CALL AV_PGD_1P(DTCO, ZWORK,PCOVER,XDATA_STRESS(:,:),YVEG,'ARI',OCOVER,PK%NR_P,IO%NPATCH,KPATCH,KDECADE=KDEC) ENDIF -- GitLab