From 532141cd3dca0800dd008e8001aa5fd4652eae9e Mon Sep 17 00:00:00 2001 From: Gaelle Tanguy <gaelle.tanguy@meteo.fr> Date: Wed, 25 Mar 2015 14:02:31 +0000 Subject: [PATCH] Christine 25/3/2015 : bug trainee des arbres --- src/SURFEX/allocate_physio.F90 | 4 ++-- src/SURFEX/pack_isba_patch_get_sizen.F90 | 6 +++--- src/SURFEX/pack_isba_patchn.F90 | 11 +++++------ src/SURFEX/pgd_cover.F90 | 10 ++++++++++ src/SURFEX/pgd_isba_par.F90 | 4 ++++ 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/SURFEX/allocate_physio.F90 b/src/SURFEX/allocate_physio.F90 index cbcdbcdd4..8f3539b99 100644 --- a/src/SURFEX/allocate_physio.F90 +++ b/src/SURFEX/allocate_physio.F90 @@ -100,10 +100,11 @@ ALLOCATE(PALBNIR_VEG (KLU,KPATCH )) ALLOCATE(PALBVIS_VEG (KLU,KPATCH )) ALLOCATE(PALBUV_VEG (KLU,KPATCH )) ! +ALLOCATE(PH_TREE (KLU,KPATCH )) +! ! - vegetation: Ags parameters ('AGS', 'LAI', 'AST', 'LST', 'NIT' options) ! IF (HPHOTO/='NON') THEN - ALLOCATE(PH_TREE (KLU,KPATCH )) ALLOCATE(PRE25 (KLU,KPATCH )) ALLOCATE(PLAIMIN (KLU,KPATCH )) ALLOCATE(PBSLAI (KLU,KPATCH )) @@ -132,7 +133,6 @@ IF (HPHOTO/='NON') THEN ALLOCATE(PCNA_NITRO (0,0)) ENDIF ELSE - ALLOCATE(PH_TREE (0,0)) ALLOCATE(PRE25 (0,0)) ALLOCATE(PLAIMIN (0,0)) ALLOCATE(PBSLAI (0,0)) diff --git a/src/SURFEX/pack_isba_patch_get_sizen.F90 b/src/SURFEX/pack_isba_patch_get_sizen.F90 index 9271f5085..463523274 100644 --- a/src/SURFEX/pack_isba_patch_get_sizen.F90 +++ b/src/SURFEX/pack_isba_patch_get_sizen.F90 @@ -66,7 +66,7 @@ NSIZE_N0=0 NSIZE_TSIMPLE=0 NSIZE_T0=0 ! -NSIZE_SIMPLE=68 +NSIZE_SIMPLE=69 NSIZE_GROUND=11 NSIZE_VEGTYPE=1 NSIZE_TG=1 @@ -150,10 +150,10 @@ ELSE ENDIF ! IF (CPHOTO/='NON') THEN - NSIZE_SIMPLE=NSIZE_SIMPLE+23 + NSIZE_SIMPLE=NSIZE_SIMPLE+22 NSIZE_BIOMASS=NSIZE_BIOMASS+2 ELSE - NSIZE_0=NSIZE_0+23 + NSIZE_0=NSIZE_0+22 NSIZE_00=NSIZE_00+2 ENDIF ! diff --git a/src/SURFEX/pack_isba_patchn.F90 b/src/SURFEX/pack_isba_patchn.F90 index ed6fea2d9..bbf1ecc1a 100644 --- a/src/SURFEX/pack_isba_patchn.F90 +++ b/src/SURFEX/pack_isba_patchn.F90 @@ -528,6 +528,8 @@ ELSE XP_RSMIN => XBLOCK_0(:,ISIZE_0) END IF ! +ISIZE_SIMPLE = ISIZE_SIMPLE + 1 + XP_H_TREE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) ! IF (CPHOTO/='NON') THEN ISIZE_SIMPLE = ISIZE_SIMPLE + 1 @@ -536,8 +538,6 @@ IF (CPHOTO/='NON') THEN XP_LAIMIN => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) ISIZE_SIMPLE = ISIZE_SIMPLE + 1 XP_SEFOLD => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) - ISIZE_SIMPLE = ISIZE_SIMPLE + 1 - XP_H_TREE => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) ISIZE_SIMPLE = ISIZE_SIMPLE + 1 XP_ANF => XBLOCK_SIMPLE(:,ISIZE_SIMPLE) ISIZE_SIMPLE = ISIZE_SIMPLE + 1 @@ -588,8 +588,6 @@ ELSE ISIZE_0 = ISIZE_0 + 1 XP_SEFOLD => XBLOCK_0(:,ISIZE_0) ISIZE_0 = ISIZE_0 + 1 - XP_H_TREE => XBLOCK_0(:,ISIZE_0) - ISIZE_0 = ISIZE_0 + 1 XP_ANF => XBLOCK_0(:,ISIZE_0) ISIZE_0 = ISIZE_0 + 1 XP_ANMAX => XBLOCK_0(:,ISIZE_0) @@ -967,11 +965,12 @@ IF (NPATCH==1) THEN XP_RSMIN (:) = XRSMIN (:, 1) END IF ! + XP_H_TREE (:) = XH_TREE (:, 1) + ! IF (CPHOTO/='NON') THEN XP_BSLAI (:) = XBSLAI (:, 1) XP_LAIMIN (:) = XLAIMIN (:, 1) XP_SEFOLD (:) = XSEFOLD (:, 1) - XP_H_TREE (:) = XH_TREE (:, 1) XP_ANMAX (:) = XANMAX (:, 1) XP_FZERO (:) = XFZERO (:, 1) XP_EPSO (:) = XEPSO (:, 1) @@ -1100,6 +1099,7 @@ ELSE XP_LAT (JJ) = XLAT (JI) XP_LON (JJ) = XLON (JI) XP_FSAT (JJ) = XFSAT (JI) + XP_H_TREE (JJ) = XH_TREE (JI, KPATCH) ENDDO ! DO JK=1,NGROUND_LAYER @@ -1300,7 +1300,6 @@ ELSE XP_BSLAI (JJ) = XBSLAI (JI, KPATCH) XP_LAIMIN (JJ) = XLAIMIN (JI, KPATCH) XP_SEFOLD (JJ) = XSEFOLD (JI, KPATCH) - XP_H_TREE (JJ) = XH_TREE (JI, KPATCH) XP_ANMAX (JJ) = XANMAX (JI, KPATCH) XP_FZERO (JJ) = XFZERO (JI, KPATCH) XP_EPSO (JJ) = XEPSO (JI, KPATCH) diff --git a/src/SURFEX/pgd_cover.F90 b/src/SURFEX/pgd_cover.F90 index 35dc68c68..c2d37c707 100644 --- a/src/SURFEX/pgd_cover.F90 +++ b/src/SURFEX/pgd_cover.F90 @@ -143,6 +143,7 @@ INTEGER :: ICOVER ! 0 if cover is not present, >1 if prese ! ! (even on another processor) REAL(KIND=JPRB) :: ZHOOK_HANDLE ! +INTEGER :: JI, JX, JY !--------------------------------------------------------------- ! !* 1. Initializations @@ -195,6 +196,15 @@ IF (ANY(XUNIF_COVER/=0.)) THEN XCOVER(:,JCOVER) = XUNIF_COVER(JCOVER) END DO XCOVER(:,:)=XCOVER(:,:)/SPREAD(SUM(XCOVER(:,:),2),2,JPCOVER) + DO JI=1,NL + JY = (JI-1)/20+1 + JX = JI -(JY-1)*20 + IF (JX>=2 .AND. JX<4) THEN + XCOVER(JI,:) = 0. !JI->JX + XCOVER(JI,202)= 1. !JI->JX + END IF + END DO +! inclusion d'arbres END IF ! !* 3.3 No data diff --git a/src/SURFEX/pgd_isba_par.F90 b/src/SURFEX/pgd_isba_par.F90 index 57536f78f..87bb475d7 100644 --- a/src/SURFEX/pgd_isba_par.F90 +++ b/src/SURFEX/pgd_isba_par.F90 @@ -240,6 +240,7 @@ LOGICAL, DIMENSION(NVEGTYPE_MAX) :: LUNIF_STRESS ! stress type CHARACTER(LEN=6), DIMENSION(NVEGTYPE_MAX) :: CFTYP_CNA_NITRO ! CNA for nitrogen REAL(KIND=JPRB) :: ZHOOK_HANDLE ! +INTEGER :: JI NAMELIST/NAM_DATA_ISBA/NTIME, XUNIF_VEGTYPE, XUNIF_DG, XUNIF_ROOTFRAC, XUNIF_DICE, & XUNIF_GROUND_DEPTH, XUNIF_ROOT_DEPTH, XUNIF_ROOT_EXTINCTION, & XUNIF_ROOT_LIN, XUNIF_LAI, XUNIF_VEG, XUNIF_Z0, XUNIF_EMIS, & @@ -480,6 +481,9 @@ IF (.NOT. LDATA_VEGTYPE .AND. .NOT. LDATA_LAI) DEALLOCATE(XPAR_LAI) ! ALLOCATE(XPAR_Z0 (NDIM,NTIME,NVEGTYPE)) CALL INI_VAR_FROM_DATA(HPROGRAM,'CDN','Z0: roughness length','NAT',CFNAM_Z0,CFTYP_Z0,XUNIF_Z0,XPAR_Z0,LDATA_Z0) +DO JI=1,NDIM +XPAR_Z0(JI,:,:) = XPAR_Z0(JI,:,:) * (0.5 + MOD(NINT ( (FLOAT(JI)**1.5) ),100)/100. ) +END DO IF (.NOT. LDATA_Z0) DEALLOCATE(XPAR_Z0) ! ALLOCATE(XPAR_EMIS (NDIM,NTIME,NVEGTYPE)) -- GitLab