diff --git a/src/SURFEX/coupling_isban.F90 b/src/SURFEX/coupling_isban.F90 index 1e87ac09d188615f0de2124b2c17a1e884af1446..1250e5719706301ef0e8e6e8fbc5f1db109bc8ea 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 349efe1b1b3f033bbfa4eb474db286ddfeff7154..6e454467d9b2873f4ff877cc14a5906572cfb79f 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) !