From b298cf6e22fad634ae3f5a571bacbef89ebef9f4 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 18 Jun 2018 09:55:50 +0200 Subject: [PATCH] Philippe 18/06/2018: SURFEX: do not use SIZE on non associated pointers --- src/SURFEX/coupling_isban.F90 | 14 ++++++++++++-- src/SURFEX/init_surf_atmn.F90 | 11 +++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/SURFEX/coupling_isban.F90 b/src/SURFEX/coupling_isban.F90 index 1e87ac09d..1250e5719 100644 --- a/src/SURFEX/coupling_isban.F90 +++ b/src/SURFEX/coupling_isban.F90 @@ -727,8 +727,8 @@ REAL, DIMENSION(PK%NSIZE_P) :: ZP_Z0FLOOD !Floodplain REAL, DIMENSION(PK%NSIZE_P) :: ZP_FFGNOS !Floodplain fraction over the ground without snow REAL, DIMENSION(PK%NSIZE_P) :: ZP_FFVNOS !Floodplain fraction over vegetation without snow ! -REAL, DIMENSION(SIZE(MGN%XPFT,1),PK%NSIZE_P) :: ZP_PFT -REAL, DIMENSION(SIZE(MGN%XEF,1),PK%NSIZE_P) :: ZP_EF +REAL, DIMENSION(:,:),ALLOCATABLE :: ZP_PFT +REAL, DIMENSION(:,:),ALLOCATABLE :: ZP_EF INTEGER, DIMENSION(PK%NSIZE_P) :: IP_SLTYP ! REAL, DIMENSION(PK%NSIZE_P,IO%NNBIOMASS) :: ZP_RESP_BIOMASS_INST ! instantaneous biomass respiration (kgCO2/kgair m/s) @@ -776,6 +776,16 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE ! IF (LHOOK) CALL DR_HOOK('COUPLING_ISBA_n:TREAT_PATCH',0,ZHOOK_HANDLE) ! +IF (ASSOCIATED(MGN%XPFT)) THEN + ALLOCATE(ZP_PFT(SIZE(MGN%XPFT,1),PK%NSIZE_P)) +ELSE + ALLOCATE(ZP_PFT(0,0)) +ENDIF +IF (ASSOCIATED(MGN%XEF)) THEN + ALLOCATE(ZP_EF(SIZE(MGN%XEF,1),PK%NSIZE_P)) +ELSE + ALLOCATE(ZP_EF(0,0)) +ENDIF !-------------------------------------------------------------------------------------- ! ! Pack isba forcing outputs diff --git a/src/SURFEX/init_surf_atmn.F90 b/src/SURFEX/init_surf_atmn.F90 index 349efe1b1..6e454467d 100644 --- a/src/SURFEX/init_surf_atmn.F90 +++ b/src/SURFEX/init_surf_atmn.F90 @@ -725,8 +725,15 @@ DO JJ=1,KSIZE ZP_AZIM (JJ) = ZAZIM (KMASK(JJ)) ENDIF ENDIF - IF (SIZE(YSC%IM%MSF%XMEGAN_FIELDS,1)>0 .AND. YSC%IM%MSF%NMEGAN_NBR>0 ) & - ZP_MEGAN_FIELDS (JJ,:) = YSC%IM%MSF%XMEGAN_FIELDS(KMASK(JJ),:) +! IF (SIZE(YSC%IM%MSF%XMEGAN_FIELDS,1)>0 .AND. YSC%IM%MSF%NMEGAN_NBR>0 ) & +! ZP_MEGAN_FIELDS (JJ,:) = YSC%IM%MSF%XMEGAN_FIELDS(KMASK(JJ),:) + IF ( YSC%IM%MSF%NMEGAN_NBR>0 ) THEN + IF ( ASSOCIATED(YSC%IM%MSF%XMEGAN_FIELDS)) THEN + IF ( SIZE(YSC%IM%MSF%XMEGAN_FIELDS,1)>0 ) THEN + ZP_MEGAN_FIELDS (JJ,:) = YSC%IM%MSF%XMEGAN_FIELDS(KMASK(JJ),:) + END IF + END IF + END IF ENDDO IF (LHOOK) CALL DR_HOOK('PACK_SURF_INIT_ARG',1,ZHOOK_HANDLE) ! -- GitLab